2010-06-21 4 views
5

मैं एक्सएमएलटी को एक्सएमएल बदलने के लिए उपयोग कर रहा हूं। एक्सएसएलटी के लिए एक्सएमएल को थूकने का कोई तरीका है जो इसे खिला रहा है? कुछ की तरह:एक्सएमएलटी के एक्सएमएल को इको करने के लिए इसका कोई तरीका है?

<xsl:echo-xml /> 
+1

करने के लिए इसे स्पिट बाहर जहां, और क्या प्रयोजन के लिए? एक डीबगर में एक्सएसएल चलाने के बारे में कैसे? –

+0

अच्छा प्रश्न (+1)। विस्तार से समझाया गया, कई संभावित समाधानों के लिए मेरा उत्तर देखें। –

उत्तर

6

निम्नलिखित प्रतियां परिणाम पेड़ के लिए पूरा एक्सएमएल:

<xsl:copy-of select="." /> 

आप "संदेश उत्पादन" करने के लिए कि भेजना चाहते हैं, तो आप सिर्फ इस तरह लपेट कर सकते हैं:

<xsl:message> 
    <xsl:copy-of select="."/> 
</xsl:message> 
8

मूल रूप से मैं करने के लिए कुछ XSLT का उपयोग कर रहा एक्सएमएल को बदलने, वहाँ XSLT थूक के लिए एक तरीका है एक्सएमएल बाहर इसे खिला रहा है? कुछ की तरह:

सबसे आसान और सबसे छोटा रास्ता:

<xsl:copy-of select="/"/> 

यह वर्तमान XML दस्तावेज़ आउटपुट।

<xsl:copy-of select="."/> 

यह वर्तमान नोड द्वारा रूट उपट्री आउटपुट करता है।

<xsl:template match="node()|@*"> 
    <xsl:copy> 
    <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
</xsl:template> 

जब यह स्टाइलशीट में केवल टेम्पलेट है, पूर्ण, XML दस्तावेज है जिस पर परिवर्तन लागू किया जाता है परिणाम के रूप में उत्पादन होता है:

हालांकि, XSLT प्रोग्रामर ज्यादातर निम्न (पहचान नियम) का उपयोग ।

पहचान नियम का उपयोग सबसे मौलिक एक्सएसएलटी डिजाइन पैटर्न में से एक है। यह सभी नोड्स की प्रतिलिपि बनाने के लिए बेहद आसान काम करता है, लेकिन विशिष्ट जिनके लिए एक विशिष्ट प्रसंस्करण (जैसे सामग्री को हटाने, संशोधित करने, ..., आदि) का नाम बदलना (

0

name() XPath फ़ंक्शन के साथ टेम्पलेट का उपयोग करें और उत्पादन के लिए कोण कोष्ठक संस्थाओं नोड नाम:

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="serialize.xml"?> 
<xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" 
      > 
<xsl:output method="xml" encoding="utf-8" version="" indent="yes" standalone="no" media-type="text/html" omit-xml-declaration="no" doctype-system="about:legacy-compat" /> 

<xsl:template match="xsl:stylesheet"> 
    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="/"> 
    <html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    </head> 
    <body> 
     <xsl:apply-templates select="*" mode="serialize"/> 
    </body> 
    </html> 
</xsl:template> 

    <xsl:template match="*" mode="serialize"> 
     &lt;<xsl:value-of select="name()" />&gt; 
    <xsl:apply-templates select="*" mode="serialize"/> 
</xsl:template> 
</xsl:stylesheet> 

अधिक जानकारी के लिए जेनी टेनिसन बताते XSL-सूची copying XML nodes to HTML के साथ-साथ serializing external XML documents के लिए टेम्पलेट्स

संबंधित मुद्दे

 संबंधित मुद्दे