मेरे पास openerp के आधार पर एक webservice द्वारा उत्पन्न एक XML है, इसमें कई तत्वों के लिए एक उपसर्ग पीपी है। मैं कई तत्वों का चयन करके xslt का उपयोग कर उस XML फ़ाइल को किसी अन्य XML में कनवर्ट करना चाहता हूं। जब मैं परिवर्तन निष्पादित करने का प्रयास करता हूं, तो यह मुझे उपसर्ग पीपी के लिए 'prefix xsl तत्व के लिए बाध्य नहीं है' त्रुटि दिखाता है, मैं पीपी घोषित नहीं कर सकता क्योंकि यह कई उत्तरों में वर्णित है, मैं उपयोग को अनदेखा कैसे कर सकता हूं उस उपसर्ग का?XSLT तत्व के लिए उपसर्ग xsl बाध्य नहीं है
उत्तर
मुझे इस समस्या का समाधान मिला। हम सभी नामस्थान और हमारे एक्सएमएल फ़ाइल में उपसर्ग की अनदेखी करने के लिए इस XSLT परिवर्तन का उपयोग कर सकते हैं:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()[not(self::*)]">
<xsl:copy/>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
XPath pp:*
सिंटैक्स को अपने स्थानीय नामों के बावजूद किसी विशेष नामस्थान यूआरआई के साथ सभी तत्वों/विशेषताओं का चयन करने के लिए प्रदान करता है, लेकिन नामस्थान के बावजूद किसी विशेष स्थानीय नाम के साथ सभी तत्वों/विशेषताओं का चयन करने के लिए (सीधे) नहीं। यदि आप पहले से नहीं जानते, तो क्या नाम स्थान यूआरआई तो हो जाएगा बजाय
pp:foo/pp:bar
आप की तरह
*[local-name() = 'foo']/*[local-name() = 'bar']
चाल का उपयोग करने के तथ्य यह है कि दस्तावेज़ का उपयोग करता है "पीपी" उपसर्ग के रूप में है अप्रासंगिक, XPath और XSLT (और किसी भी अन्य नामस्थान-जागरूक XML प्रोसेसिंग टूल्स) के लिए महत्वपूर्ण है, यह तत्व का स्थानीय नाम और उसका नामस्थान यूआरआई है। उपसर्ग बस एक उपकरण है जो पार्सर को प्रत्येक नोड को सही नेमस्पेस यूआरआई संलग्न करने की अनुमति देता है।
जहां मैं इस पंक्ति को * [स्थानीय-नाम() = 'foo']/* [स्थानीय-नाम() = 'बार'] लिख सकता हूं क्योंकि मैं यह नियंत्रित नहीं कर सकता कि XML फ़ाइल कैसे उत्पन्न होती है, यह एक्सएसएलटी है ईएसबी में इस्तेमाल होने जा रहा है, इसलिए यह सिर्फ एक संदेश होगा और मैं उस पर एक्सएसएलटी लागू करूंगा। – Rida
@Rida आपको इस चाल का उपयोग अपने सभी 'चयन' और' मिलान 'अभिव्यक्तियों में करना होगा जो चर नामस्थान वाले तत्वों को संदर्भित करते हैं। एक्सएमएल और आपके वर्तमान एक्सएसएलटी का उदाहरण देखे बिना और अधिक विशिष्ट होना असंभव है। –
आपके उत्तर के लिए धन्यवाद मुझे मेरी समस्या का समाधान मिला – Rida
- 1. "तत्व के लिए उपसर्ग" xliff "xliff: g" बाध्य नहीं है "
- 2. उपसर्ग तत्व के लिए "सोनार" "सोनार: सोनार" बाध्य नहीं है
- 3. XSLT XSL: के लिए-प्रत्येक सशर्त चयन
- 4. Xslt से xsl-fo रूपांतरण
- 5. तत्व "टीएक्स: एनोटेशन-संचालित" के लिए वसंत "उपसर्ग" टीएक्स "बाध्य नहीं है।"
- 6. स्प्रिंग 3.0: "तत्व" प्रकार से जुड़े विशेषता "वाई" के लिए "उपसर्ग" एक्स "बाध्य नहीं है"
- 7. स्प्रिंग फ्रेम वर्क कॉन्फ़िगरेशन समस्या "तत्व संदर्भ के लिए उपसर्ग संदर्भ: एनोटेशन-कॉन्फ़िगरेशन बाध्य नहीं है"
- 8. xslt: तत्व
- 9. एक्सएमएल स्कीमा सत्यापन त्रुटि "उपसर्ग बाध्य नहीं है"
- 10. XSLT हो रही पिछले तत्व
- 11. तत्व विशेषता नामस्थान के बजाय XSLT रूट टैग नेमस्पेस
- 12. उपसर्ग तत्व के लिए "संदर्भ" "संदर्भ: घटक स्कैन"
- 13. xslt
- 14. एक्सएसएलटी नेमस्पेस घोषणा में बहिष्कार-परिणाम-उपसर्ग और एक्सटेंशन-तत्व-उपसर्ग के बीच क्या अंतर है?
- 15. XSLT
- 16. "prefix 'साबुन को परिभाषित नहीं किया गया है" xslt फ़ाइल
- 17. उपसर्ग "आइवी लता के लिए" तत्व "आइवी लता: cachepath"
- 18. XSLT परिवर्तन - गतिशील तत्व नाम
- 19. xsl
- 20. xsl: स्ट्रिप-स्पेस कैरिज रिटर्न को हटा नहीं रहा है
- 21. गतिशील रूप XSLT
- 22. क्या xslt-fo utf-8 का समर्थन नहीं करता है?
- 23. xslt
- 24. XSLT
- 25. XSLT
- 26. सम्मिलित XSLT
- 27. xsl: टेम्पलेट मैच को
- 28. xslt
- 29. Xsl के साथ newlines व्याख्या: पाठ?
- 30. 10000 के + यूआई तत्व, बाध्य या ड्रा?
"के रूप में यह कई जवाब में बताया गया है मैं पीपी की घोषणा नहीं कर सकते हैं" - क्यों नहीं? स्टाइलशीट के भीतर यूआरआई को उपयुक्त उपसर्ग में मैप करना इस समस्या का सही दृष्टिकोण है। –
क्योंकि मेरे पास उस उपसर्ग के लिए कोई यूआरआई नहीं है, यह स्वचालित रूप से openerp से उत्पन्न होता है। – Rida