मैं xquery का उपयोग करके आने वाले एक्सएमएल (कतार से) के तत्वों को मान असाइन करने का प्रयास कर रहा हूं। आने वाला एक्सएमएल फॉर्म का है
<header><a></a><b></b><c></c></header>
मुझे उन्हें लक्ष्य प्रणाली के लिए निरंतर मूल्यों के साथ सेट करने की आवश्यकता है:
<header><a>1</a><b>2</b><c>3</c></header>
कोई विचार?
1 उत्तर
मुझे यकीन नहीं है कि मैं आपके प्रश्न को पूरी तरह से समझता हूं, लेकिन मुझे लगता है कि आप इनपुट की प्रतिलिपि बनाना चाहते हैं और कुछ तत्वों को संशोधित करना चाहते हैं। यह एक्सएसएलटी के साथ सबसे आसानी से किया जाएगा।
XQuery में ऐसा करने के लिए आप एक पुनरावर्ती फ़ंक्शन चाहते हैं जो प्रत्येक नोड को देखता है, यदि उपयुक्त हो तो इसे संशोधित करता है, और आउटपुट की प्रतिलिपि बनाता है। आपके विवरण से, मुझे लगता है कि आपके इनपुट में केवल तत्व नोड्स हैं, और इसलिए यह एकमात्र मामला है जिस पर मैंने विचार किया है:
declare function local:apply($node as element())
{
typeswitch ($node)
case element(a) return <a>1</a>
case element(b) return <b>2</b>
case element(c) return <c>3</c>
default return element {name($node)} {local:apply($node/*)}
}
संबंधित सवाल
नए सवाल
xml
XML (एक्स्टेंसिबल मार्कअप लैंग्वेज) एक संरचित दस्तावेज़ प्रारूप है जो टेक्स्ट एन्कोडिंग नियमों को परिभाषित करता है। इस टैग का उपयोग करते समय अतिरिक्त टैग जैसे प्रोग्रामिंग भाषा, टूल सेट, XML तकनीकों का उपयोग किया जा रहा है, और अन्य टैग पोस्ट की गई समस्या के वातावरण का वर्णन करते हैं। XML लचीलापन मानव और मशीन डेटा हस्तांतरण के लिए उपयोग की एक विस्तृत विविधता के लिए उधार देता है इसलिए उपकरण और पुस्तकालयों के रूप में विशिष्ट हो।
saxon:transform()
एक्सटेंशन फ़ंक्शन को कॉल कर सकते हैं ताकि आवश्यक परिवर्तन एक XSLT रूपांतरण में किया जा सके लेकिन एक युक्त XQuery मूल्यांकन के भाग के रूप में।