Monday, 15 September 2014

xml - template matches twice when it should match once -


मुझे यह XML है:

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "UTF-8" & gt; & LT; दस्तावेज़ & gt; & LT; shortbody & gt; & LT; पाठ & gt; परीक्षण & lt; / text & gt; & LT; पाठ & gt; शॉर्टडाई & lt; / text & gt; & Lt; / shortbody & gt; & LT; बॉडी & gt; & LT; पैरा & gt; & LT; पाठ & gt; Xsltransform.net का एक नया संस्करण जारी किया गया है! & Lt; / पाठ & gt; & Lt; / पैरा & gt; & LT; पैरा & gt; & LT; पाठ & gt; हमने निम्नलिखित नई विशेषताएं जोड़ दी हैं: & lt; / text & gt; & Lt; / पैरा & gt; & Lt; / body & gt; & Lt; / दस्तावेज़ & gt;  

और यह XSLT:

  & lt; xsl: स्टाइलशीट xmlns: xsl = "http://www.w3.org/1999/XSL/Transform "संस्करण =" 2.0 "& gt; & Lt; xsl: टेम्पलेट मैच = "बॉडी" & gt; & LT; परिणाम & gt; & Lt; p & gt; & Lt; xsl: लागू-टेम्पलेट चुनें = "// शॉर्टडा" / & gt; & Lt; / p & gt; & Lt; xsl: प्रत्येक चयन = "पैराग्राफ" & gt; & Lt; xsl: तत्व का नाम = "पैराग्राफ" & gt; & Lt; xsl: लागू-टेम्पलेट चुनें = "।" / & Gt; & Lt; / XSL: तत्व & gt; & Lt; / XSL: के लिए-प्रत्येक & gt; & Lt; / परिणाम & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; xsl: टेम्पलेट मैच = "बॉडी / पैराग्राफ़ / टेक्स्ट | छोटा / पाठ" & gt; & Lt; xsl: मान का चयन = "।" / & Gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; xsl: टेम्पलेट मैच = "टेक्स्ट ()" / & gt; & Lt; / XSL: स्टाइलशीट & gt;  

और परिणाम है ():

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"? & Gt; परीक्षण छोटा & lt; परिणाम & gt; & Lt; p & gt; परीक्षण छोटा & lt; / p & gt; & LT; पैरा & gt; Xsltransform.net का एक नया संस्करण जारी किया गया है! & Lt; / पैरा & gt; & LT; पैरा & gt; हमने निम्नलिखित नई विशेषताएं जोड़ दी हैं: & lt; / paragraph & gt; & Lt; / परिणाम & gt;  

मुझे समझ में नहीं आ रहा है कि क्यों shortbody / text के लिए टेम्पलेट दो बार कहा जाता है, इसलिए यह मेरे एक्सएमएल के बाहर समाप्त होता है, लेकिन body / paragrap / पाठ ? मैंने मैच के लिए कई अलग-अलग तरीकों की कोशिश की है, लेकिन हर बार shortbody मेरे एक्सएमएल तत्वों के बाहर समाप्त होता है ऐसा क्यों है और मैं अपना एक्सएसएलटी कैसे बदल सकता हूं, ताकि टेम्पलेट केवल और ?

के भीतर से कॉल से मेल खाता हो

आपको किसी अन्य टेम्पलेट को जोड़ने की जरूरत है जो मूल तत्व से मेल खाता है, दस्तावेज़

इसे जोड़ने का प्रयास करें:

<पूर्व> & lt; xsl: टेम्पलेट मैच = "दस्तावेज़" & gt; & Lt; xsl: लागू-टेम्पलेट चुनें = "बॉडी" / & gt; & Lt; / XSL: टेम्पलेट & gt;

आपके एक्सएमएल के मूल तत्व के बाहर का पाठ इस प्रकार है क्योंकि डिफ़ॉल्ट टेम्पलेट रूट तत्व पर लागू होते हैं, जो कि संक्रमित बाल नोड्स को संसाधित करते हैं, पाठ नोड्स कॉपी करते हुए समाप्त होते हैं।


No comments:

Post a Comment