2010-01-29 10 views
6

के माध्यम से कच्चे HTML को चलो एक एक्सएसएल ट्रांसफॉर्म बनाते हैं। एक्सएमएल जो मैं बदल रहा हूं वह एक नोड है जिसमें एचटीएमएल है।एक्सएसएल:

<xml> 
    <text> 
     <p><b>Hello</b><em>There</em></p> 
    </text> 
</xml> 

को लागू करने को बदलने:

<xsl:template match="text"> 
    <div class="{name()} input"> 
     <xsl:value-of select="."/> 
    </div> 
</xsl:template> 

मैं आउटपुट प्राप्त:

<div class="text input"> 
    Hello There 
</div> 

लेकिन मैं एचटीएमएल इसलिए की तरह बरकरार रहेगा हैं:

<div class="text input"> 
    <p><b>Hello</b><em>There</em></p> 
</div> 

स्थानापन्न ।नोड() फ़ंक्शन के साथ एक ही परिणाम देता है।

क्या एचटीएमएल को अनमोडिफाइड के माध्यम से प्राप्त करने का कोई तरीका है?

उत्तर

10

.. xsl:copy-of

यह तुम क्या जरूरत है क्या करना चाहिए पर एक नज़र डालें

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

ऊपर पूरे वर्तमान नोड का चयन करेंगे तो आपके मामले में <text> ही शामिल किया जाएगा ..

वर्तमान के तहत सब कुछ चुनने के लिए निम्न का उपयोग करें ..

<xsl:copy-of select="child::node()" /> 
+1

' 'पूरे '' नोड की प्रतिलिपि बनायेगा, न केवल इसकी सामग्री। ;) – Tomalak

+0

@ टोमालक, वास्तव में .. वैकल्पिक संस्करण के साथ संपादित .. –

+0

धन्यवाद गैबी, जिसने अच्छी तरह से चाल की थी;) –

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