मुझे केवल एक्सएसएलटी रूपांतरणों की सहायता से एक्सएमएल नोड्स के अंदर से एक्सप्लोर एक्सएमएल अक्षरों की आवश्यकता है। मेरे पास <text><>and other possible characters</text>
है और जब मैं इसे बॉडी टैग के अंदर रखता हूं तो इसे वैध स्वरूपित HTML के रूप में प्राप्त करने की आवश्यकता होती है।एक्सएसएलटी की मदद से एक्सएमएल अक्षरों को कैसे अनदेखा करें?
उत्तर
<xsl:template match="text">
<body>
<xsl:value-of select="." disable-output-escaping="yes" />
</body>
</xsl:template>
ध्यान दें कि आउटपुट अब अच्छी तरह से गठित एक्सएमएल होने की गारंटी नहीं है।
मैं यह भी ध्यान दूंगा कि अक्षम-आउटपुट-एस्केपिंग एक वैकल्पिक क्रमबद्धता सुविधा है। यह एक्सएसएलटी प्रोसेसर द्वारा उदाहरण के लिए समर्थित नहीं है जैसे फ़ायरफ़ॉक्स जैसे मोज़िला ब्राउज़र में उपयोग किया जाता है क्योंकि वे सीधे परिणाम पेड़ प्रस्तुत करते हैं और इसे क्रमबद्ध नहीं करते हैं। –
हैलो जब
टैग स्ट्रिंग में हुआ तब अक्षम-आउटपुट-एस्केपिंग = "हाँ" यह काम नहीं कर रहा है। –
मुझे इस प्रश्न का उत्तर नहीं मिला है। तो मैं इस निष्कर्ष पर आया कि ऐसा करने का कोई तरीका नहीं है। मुझे इस समस्या के लिए वर्कअराउंड मिला, सर्वर की तरफ से अनदेखी फाइल।
एआरएम ... मेरे उत्तर में क्या गलत है? यह * वह तरीका है जो आप पूछते हैं। – Tomalak
आपका सुझाव आउटपुट से बचने को अक्षम करता है और मुझे "" के रूप में अनदेखा प्रतीकों की आवश्यकता होती है। – Artic
जो * बिल्कुल * क्या है "आउटपुट से बचने" को अक्षम करने का मतलब है। यदि आपका इनपुट सही ढंग से बच जाएगा, जो नहीं है, तो आपके पास '<' और '>' होगा, और ये '<' and '> 'पर बदल जाएंगे। और फिर आपके पास '& nbsp;' होगा, जो ' ' पर बदल जाएगा। और यह एक बिल्कुल कानूनी एचटीएमएल एस्केप अनुक्रम है जिसे "" के आगे अनुवाद की आवश्यकता नहीं है। तथ्य यह है कि आपके पास ' 'का अर्थ है कि आपका इनपुट शुरू करने के लिए टूटा हुआ है। – Tomalak
xslt 2.0 के साथ मैं इस के साथ आया हूं। ध्यान दें कि आउटपुट को सही एक्सएमएल होने की गारंटी नहीं है, एक साधारण असमानता आपके आउटपुट को गड़बड़ कर सकती है।
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:character-map name="a">
<xsl:output-character character="<" string="<"/>
<xsl:output-character character=">" string=">"/>
</xsl:character-map>
<xsl:output use-character-maps="a"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
एक अन्य समाधान। यह xml पोस्टप्रोसेसर का उपयोग नहीं करता है, इसलिए आगे xslt प्रसंस्करण के इनपुट के रूप में आसानी से उपयोग करने योग्य। वैध एक्सएमएल बनाने की भी गारंटी दी। यह एक एक्सएसएलटी 2.0 समाधान है, जो "दस्तावेज़ीकरण" टैग के भीतर पाठ से बच रहा है, सैक्सन के साथ परीक्षण किया गया है। आपको अपना खुद का डेटा मॉडल परिभाषित करने के लिए "स्वीकृत टैग" चर को संशोधित करना चाहिए। तत्काल बच्चे टैग हैं, उनके नीचे वाले गुण गुण हैं। एक xsd से अनुमत टैग पढ़ना पाठक के लिए एक अभ्यास के रूप में छोड़ा गया है (कृपया इसे मेरे साथ साझा करें)।
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:my="http://magwas.rulez.org/my"
>
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:variable name="allowedtags">
<li/>
<ul/>
<br/>
<a><href/></a>
</xsl:variable>
<xsl:template match="@*|*|processing-instruction()|comment()" mode="unescape">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|processing-instruction()|comment()" mode="unescape"/>
</xsl:copy>
</xsl:template>
<xsl:template match="documentation" mode="unescape">
<documentation>
<xsl:call-template name="doc">
<xsl:with-param name="str">
<xsl:value-of select="."/>
</xsl:with-param>
</xsl:call-template>
</documentation>
</xsl:template>
<xsl:template name="doc">
<xsl:param name="str"/>
<xsl:variable name="start" select="fn:substring-before($str,'<')"/>
<xsl:variable name="rest" select="fn:substring-after($str,'<')"/>
<xsl:variable name="fulltag" select="fn:substring-before($rest,'>')"/>
<xsl:variable name="tagparts" select="fn:tokenize($fulltag,'[ 
]')"/>
<xsl:variable name="tag" select="$tagparts[1]"/>
<xsl:variable name="aftertag" select="fn:substring-after($rest,'>')"/>
<xsl:variable name="intag" select="fn:substring-before($aftertag,fn:concat(fn:concat('</',$tag),'>'))"/>
<xsl:variable name="afterall" select="fn:substring-after($aftertag,fn:concat(fn:concat('</',$tag),'>'))"/>
<xsl:value-of select="$start"/>
<xsl:choose>
<xsl:when test="$tag">
<xsl:variable name="currtag" select="$allowedtags/*[$tag = local-name()]"/>
<xsl:if test="$currtag">
<xsl:element name="{$currtag/local-name()}">
<xsl:for-each select="$tagparts[position()>1]">
<xsl:variable name="anstring" select="fn:replace(.,'^([^ 
=]*)=.*$','$1')"/>
<xsl:variable name="antag" select="$currtag/*[$anstring = local-name()]"/>
<xsl:if test="$antag">
<xsl:attribute name="{$antag/local-name()}">
<xsl:value-of select="fn:replace(.,'^.*[^ "]*"([^"]*)".*','$1')"/>
</xsl:attribute>
</xsl:if>
</xsl:for-each>
<xsl:if test="$intag">
<xsl:call-template name="doc">
<xsl:with-param name="str">
<xsl:value-of select="$intag"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:if>
<xsl:if test="$afterall">
<xsl:call-template name="doc">
<xsl:with-param name="str">
<xsl:value-of select="$afterall"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
'@ * | * | प्रसंस्करण-निर्देश() | टिप्पणी() 'को छोटा कर दिया जा सकता है' @ * | नोड() ' – Vampire
- 1. एक्सएमएल नमूने से एक्सएसएलटी कैसे उत्पन्न करें
- 2. लेटेक्स - निकालने/अक्षरों को अनदेखा करें
- 3. एक्सएसएलटी या लिंक से एक्सएमएल
- 4. एक्सएसएलटी - टेक्स्ट एक्सएमएल मोड
- 5. एक्सएमएल को सादा पाठ में कनवर्ट करना - एक्सएसएलटी में व्हाइटस्पेस को कैसे अनदेखा/संभालना चाहिए?
- 6. एक्सएसएलटी फ़ाइल के साथ एक्सएमएल फ़ाइल को कैसे लिंक करें?
- 7. एक्सएसएलटी यानी एक्सएमएल ट्रांसफार्मर
- 8. जावा, एक्सएमएल, एक्सएसएलटी: डीटीडी-सत्यापन को रोकें
- 9. माइक्रोसॉफ्ट। रिपोर्टिंग। * बनाम एक्सएमएल/एक्सएसएलटी
- 10. एसवीएन अनदेखा - निर्देशिका की सामग्री को अनदेखा कैसे करें
- 11. एक्सएसएलटी - विशेषता द्वारा एक्सएमएल विशेषता का चयन कैसे करें?
- 12. सी # में एक्सएमएल अक्षरों का प्रयोग करें?
- 13. मेरे एक्सएसएलटी टेक्स्ट आउटपुट में नोड एक्सएमएल कैसे शामिल करें?
- 14. एक्सएसएलटी
- 15. एक्सएसएलटी के साथ एक्सएमएल ट्रांसफॉर्म करें और सीडीएटीए (रूबी में)
- 16. ज़ेंड फ्रेमवर्क और एक्सएमएल/एक्सएसएलटी एकीकरण
- 17. एक्सएमएल फ़ील्ड को अनदेखा करते समय LINQ का चयन करें
- 18. एक्सएमएल डिफ: एक्सएसएलटी का उपयोग कर एक्सएमएल डिफ कैसे उत्पन्न करें?
- 19. एक्सएसएलटी
- 20. अक्षरों को अनदेखा करने के लिए जावा स्ट्रिंग खोज
- 21. स्ट्रिंग से अक्षरों को कैसे हटाया जाए?
- 22. एक्सएसएलटी
- 23. .NET एक्सएमएल Deserialization नामस्थानों को अनदेखा
- 24. एक्सएसएलटी
- 25. एक्सएसएलटी
- 26. सी # में स्ट्रिंग से केवल अक्षरों को कैसे प्राप्त करें?
- 27. एक्सएसएलटी 1.0 को एक्सएसएलटी 2.0
- 28. एक्सएसएलटी: एक्सएमएल में एम्बेडेड एचटीएमएल पार्सिंग?
- 29. एक्सएसएलटी में प्रसंस्करण-निर्देश तत्व से कैसे मिलान करें?
- 30. ओओपी सी ++ मदद की आवश्यकता
मुझे यकीन नहीं है कि मैं समझता हूं ... < और > मान्य HTML हैं। क्या आप कह रहे हैं कि आप उन्हें HTML टैग के कुछ हिस्सों में बदलना चाहते हैं, उदा। "<i> foo </i >" 0 " foo" में परिवर्तन करें "? – wdebeaum
आप बिल्कुल सही हैं! – Artic
मैंने एक्सएसएल 1.0 में ऐसा करने की कोशिश की, और यह वास्तव में बुरा हो गया (2.0 थोड़ा बेहतर हो सकता है, लेकिन यह व्यापक रूप से समर्थित नहीं है)। जब तक आप अक्षम-आउटपुट-एस्केपिंग चाल नहीं कर सकते, तब तक आपको मूल रूप से प्रत्येक पाठ नोड में HTML को पार्स करना होगा और और का उपयोग करके तत्वों को पुन: निर्माण करना होगा। मान लीजिए यह एक वेब ब्राउज़र में है, हो सकता है कि आप इसे जावास्क्रिप्ट में कर सकते हैं (या यहां तक कि सर्वर की ओर भी)? –
wdebeaum