मेरे पास एक एक्सएमएल नीचे जैसा है -
& lt ; अनुभाग का नाम = "माता-पिता 1 यहां टेक्स्ट" आईडी = "1" & gt; & Lt; अनुभाग का नाम = "बाल 1 पाठ यहां" आईडी = "11" & gt; & Lt; / अनुभाग & gt; & Lt; अनुभाग का नाम = "बाल 2 पाठ यहां" आईडी = "12" & gt; & Lt; अनुभाग का नाम = "ग्रैंड चाइल्ड टेक्स्ट यहां" आईडी = "121" & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt; & Lt; अनुभाग का नाम = "माता-पिता 2 यहां टेक्स्ट" आईडी = "2" & gt; & Lt; अनुभाग का नाम = "बाल 1 यहाँ पाठ" आईडी = "22" & gt; & Lt; / अनुभाग & gt; & Lt; अनुभाग नाम = "बाल 2 पाठ यहां" आईडी = "23" & gt; & Lt; अनुभाग का नाम = "ग्रैंड चाइल्ड टेक्स्ट यहां" आईडी = "232" & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt;
मुझे नीचे आउटपुट एक्सएमएल -
और लेफ्टिनेंट; सेक्शन नाम = माता-पिता 1 यहां टेक्स्ट "आईडी =" 1 "& gt; & Lt; अनुभाग का नाम = "बाल 2 पाठ यहां" आईडी = "12" & gt; & Lt; अनुभाग का नाम = "ग्रैंड चाइल्ड टेक्स्ट यहां" आईडी = "121" & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt; & Lt; अनुभाग का नाम = "माता-पिता 2 यहां टेक्स्ट" आईडी = "2" & gt; & Lt; अनुभाग नाम = "बाल 2 पाठ यहां" आईडी = "23" & gt; & Lt; / अनुभाग & gt; & Lt; / अनुभाग & gt;
मुझे XSLT 1.0 परिवर्तन का उपयोग करते हुए ऊपर उठना होगा। मैं मूल्य = "1,12,121,2,23"
पैरामीटर के रूप में एक अल्पविराम से अलग स्ट्रिंग पारित करने की योजना बना रहा था मेरा प्रश्न- कैसे एक्सएसएलटी 1.0 में कॉमा से अलग पैरामीटर को लूप कैसे करें? क्या उपरोक्त को प्राप्त करने का एक सरल तरीका है? कृपया याद रखें कि मुझे इसे XSLT 1.0 में करना है आपकी मदद की सराहना की जाती है।
यहां जनवरी का विकल्प विलियम बी के दृष्टिकोण मैं यह दावा नहीं करता कि यह या तो बेहतर है या बुरा। मैं इसे दो कारणों से प्रस्तुत करता हूं:
-
आप देखना चाहते हैं कि एक पुनरावर्ती दृष्टिकोण कैसा दिखता है
-
यह अलग तरीके से व्यवहार करता है कुछ इनपुट डेटा (हालांकि यह आपके उदाहरण डेटा के लिए समान है)। विशेष रूप से, यदि आपके फिल्टर में दो नोड हैं जो नोड के दोनों वंश हैं, तो यह स्टाइलशीट दो नेस्टेड डेटा स्ट्रक्चर्स, प्रत्येक एक पत्ती नोड के साथ उत्पादन करेगा, जबकि जनवरी विलियम बी का जवाब दो पत्ती नोड्स के साथ एक नेस्टेड संरचना का उत्पादन करता है। जो आप चाहते हैं, उसे न पता।
मेरी स्टाइलशीट के लिए, आप एक फ़िल्टर प्रविष्टि को केवल पत्ती के नोड्स से गुजारें जो आप चाहते हैं यह पूर्वजों को मिलेगा मैंने इसके लिए मान लिया है कि आपकी रूट नोड को & lt; doc & gt;
& lt; xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/ कहा जाता है 1999 / XSL / रूपांतरण "& gt; & Lt; xsl: आउटपुट विधि = "xml" / & gt; & Lt; xsl: परम नाम = "वंशज-आईडी" चुनें = "'121,23'" / & gt; & Lt; xsl: टेम्पलेट मैच = "/" & gt; & LT; डॉक & gt; & Lt; xsl: कॉल-टेम्पलेट नाम = "रिकर्स-आईड्स" & gt; & Lt; xsl: के साथ- param नाम = "id" चुनें = "कॉन्सैट ($ वंशज-आईडी, ',')" / & gt; & Lt; / XSL: कॉल-टेम्पलेट & gt; & Lt; / doc & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; xsl: टेम्पलेट नाम = "रिकर्स-आईड्स" & gt; & Lt; xsl: परम नाम = "id" / & gt; & Lt; xsl: variable name = "id" चुनें = "उप--से पहले ($ आईडी, ',')" / & gt; & Lt; xsl: चर नाम = "शेष-आईडी" चुनें = "उप-स्थान ($ आईडी, ',')" / & gt; & Lt; xsl: लागू-टेम्पलेट चुनें = "/ डॉक्टर / अनुभाग" & gt; & Lt; xsl: के साथ- param नाम = "id" चुनें = "$ id" / & gt; & Lt; / XSL: लागू-टेम्पलेट्स & gt; & Lt; xsl: यदि परीक्षण = "शेष शेष-आईडी" & gt; & Lt; xsl: कॉल-टेम्पलेट नाम = "रिकर्स-आईड्स" & gt; & Lt; xsl: के साथ- param नाम = "id" चुनें = "$ शेष-आईडी" / & gt; & Lt; / XSL: कॉल-टेम्पलेट & gt; & Lt; / XSL: यदि & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; xsl: टेम्पलेट मैच = "अनुभाग" & gt; & Lt; xsl: परम नाम = "id" / & gt; & Lt; xsl: यदि test = "शुरू-शुरू ($ आईडी, @ आईडी)" & gt; & LT; XSL: प्रतिलिपि & gt; & Lt; xsl: लागू-टेम्पलेट चुनें = "@ * | नोड ()" & gt; & Lt; xsl: के साथ- param नाम = "id" चुनें = "$ id" / & gt; & Lt; / XSL: लागू-टेम्पलेट्स & gt; & Lt; / XSL: प्रतिलिपि & gt; & Lt; / XSL: यदि & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; xsl: टेम्पलेट मैच = "@ * | नोड ()" & gt; & LT; XSL: प्रतिलिपि & gt; & Lt; xsl: लागू-टेम्पलेट चुनें = "@ * | नोड ()" / & gt; & Lt; / XSL: प्रतिलिपि & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; / XSL: स्टाइलशीट & gt;
Comments
Post a Comment