अंतर
उत्तर
<xsl:template match="node()">
के लिए एक संक्षिप्त नाम है
तत्व
पाठ नोड
प्रसंस्करण-निर्देश (पीआई) नोड
टिप्पणी नोड।
दूसरी तरफ पर:
<xsl:template match="child::*">
यह किसी भी तत्व मेल खाता है:
<xsl:template match="*">
के लिए एक संक्षिप्त नाम है।
XPath अभिव्यक्ति: someAxis :: * दिया अक्ष के लिए प्राथमिक नोड प्रकार के किसी भी नोड मेल खाता है।
child::
धुरी के लिए प्राथमिक नोड-प्रकार तत्व है।
इसके अलावा अन्य मैच पैटर्न के लिए XSL xsl:template match="/" को देखें।
बस मतभेद की एक वर्णन करने के लिए, अर्थात कि *
text
से मेल नहीं खाता:
को देखते हुए xml:
<A>
Text1
<B/>
Text2
</A>
मिलान पर node()
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<!--Suppress unmatched text-->
<xsl:template match="text()" />
<xsl:template match="/">
<root>
<xsl:apply-templates />
</root>
</xsl:template>
<xsl:template match="node()">
<node>
<xsl:copy />
</node>
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>
देता है:
<root>
<node>
<A />
</node>
<node>
Text1
</node>
<node>
<B />
</node>
<node>
Text2
</node>
</root>
*
पर मिलान जबकि:
<xsl:template match="*">
<star>
<xsl:copy />
</star>
<xsl:apply-templates />
</xsl:template>
पाठ नोड्स से मेल नहीं खाता।
<xsl:template match="child::node()">
यह किसी भी नोड प्रकार the child::
अक्ष के माध्यम से चुना जा सकता है कि मेल खाता है::
<root>
<star>
<A />
</star>
<star>
<B />
</star>
</root>
ना ही '*' मैच टिप्पणी नोड्स, प्रोसेसिंग निर्देश नोड्स, नोड्स, नाम स्थान नोड्स को विशिष्ट बनाने और दस्तावेज़ नोड्स ... पैटर्न या अभिव्यक्ति '*' (अपने आप पर, abbr के रूप में।'child :: *' के लिए) ** केवल तत्व नोड्स और तत्व नोड्स से मेल खाता है **। 'विशेषता * * के लिए छोटा' '*' का उपयोग करते समय, विशेषता अक्ष पर _sterly_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ – Abel
यह जवाब भी लागू होता है: http://stackoverflow.com/questions/5394178/difference-between-childnode-and-child – StuartLC