2009-09-02 10 views
7

मैं उदाहरण के लिए, मेरी एक्सएमएल सामग्री के अंदर कुछ प्रसंस्करण-निर्देश तत्व:एक्सएसएलटी में प्रसंस्करण-निर्देश तत्व से कैसे मिलान करें?

<?legalnoticestart?> 
<?sourcenotestart?> 
<para>Content para</para> 
<?sourcenoteend?> 
<?literallayoutstart?> 
<para>body content </para> 
<?literallayoutend?> 
<?legalnoticeend?> 

मैं कैसे इन तत्वों से मेल खाते हैं और नीचे के लिए आवश्यक तत्व स्वरूप में सामग्री प्राप्त कर सकते हैं?

आवश्यक XML:

<legalnotice> 
<sourcenote> 
<p>Content para</p> 
</sourcenote> 
<literallayout> 
<p>body content</p> 
</literallayout> 
</legalnotice> 

कृपया सलाह ....

शुभकामनाओं सहित, एंटनी

उत्तर

17

डिफ़ॉल्ट रूप से, एक XSLT प्रोसेसर पीआईएस पर ध्यान नहीं देगा - उन्हें क्रम में करने के लिए मैच के लिए मजेदार और उपयोगी चीजें, आप प्रसंस्करण-निर्देश अपने टेम्पलेट में मिलान का उपयोग कर सकते हैं:

<xsl:template match="processing-instruction('legalnoticestart')"> 
    <legalnotice><xsl:value-of select="."/></legalnotice> 
</xsl:template> 

उदाहरण के लिए, निम्नलिखित स्टाइल शीट:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="doc"> 
     <xsl:apply-templates select="processing-instruction('legalnoticestart')" /> 
    </xsl:template> 

    <xsl:template match="processing-instruction('legalnoticestart')"> 
     <legalnotice><xsl:value-of select="."/></legalnotice> 
    </xsl:template> 
</xsl:stylesheet> 

इस दस्तावेज़ के साथ:

<doc> 
    <?legalnoticestart?> 
    <?legalnoticeend?> 
</doc> 

पैदावार:

<?xml version="1.0"?> 
<legalnotice> 
</legalnotice> 
+0

क्षमा करें, यह काम नहीं कर रहा है, मैं बस बिना किसी तत्व के सामग्री प्राप्त कर रहा हूं। – Antony

+0

नमस्ते, जब मैं आपका दूसरा कोड उपयोग करता हूं तो मुझे सामग्री नहीं मिल रही है ... मुझे केवल यह तत्व मिल रहा है ... – Antony

+1

तो यह काम करता है, तो! मेरा कोड केवल यह दिखाने के लिए एक स्निपेट था कि आप इसके बारे में कैसे जाएंगे। – butterchicken

2

यह वह जगह है स्वाभाविक एक बुरा डिजाइन, आप की कोशिश कर रहा हो रहे हैं प्रारंभ/समाप्ति टैग से मिलान करने के लिए, लेकिन यदि आप वास्तविक xml तत्व का उपयोग करना चाहते हैं तो उपलब्ध विधियों का उपयोग किए बिना।

जबकि आप प्रारंभिक प्रक्रिया निर्देशों के बीच नोड्स का पता लगाने के लिए एक्सपैथ के साथ प्रारंभ/अंत प्रसंस्करण निर्देशों से मेल खा सकते हैं। यदि आप ऐसे निर्देशों को घोंसले या दोहराते हैं तो यह और भी मुश्किल हो सकता है। और दिन के अंत में, यह सब ऐसा कर रहा है कि एक्सएमएल का उपयोग किए बिना एक्सएमएल पहले से ही क्या करता है दोहराने की कोशिश कर रहा है?

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