मैं एक XML दस्तावेज़ को बदलना चाहता हूं। स्रोत XML इस तरह दिखता है:गतिशील तत्व नाम
<ElementList>
<NewTag2007/>
<NewTag2006/>
<NewTag2005/>
</ElementList>
कोड की निम्न पंक्ति काम नहीं कर रहा:
<xsl:element name="{concat('NewTag',Element/Year)}"/>
उत्पादन एक श्रृंखला है
<svc:ElementList>
<svc:Element>
<Year>2007</Year>
</svc:Element>
<svc:Element>
<Year>2006</Year>
</svc:Element>
<svc:Element>
<Year>2005</Year>
</svc:Element>
</svc:ElementList>
मैं चालू करने के लिए है कि में चाहते हैं इस तरह के तत्वों का: < न्यूटाग>। या तो काम नहीं करते:"./Element/Year", और "तत्व/वर्ष // एसवीसी" (रिक्त स्थान के बिना ...)
"// तत्व/वर्ष",। एक जटिलता यह है कि "एलिमेंट" टैग "svc" नामस्थान में है जबकि "वर्ष" टैग डिफ़ॉल्ट नामस्थान में है।
तो वैसे भी, क्या मुझे नामस्थान समस्या का सामना करना पड़ रहा है या क्या मैं "concat()" फ़ंक्शन का गलत उपयोग कर रहा हूं?
खुशी है कि समाधान काम करता है। लेकिन आम तौर पर मैं फ्लाई पर रनटाइम के दौरान टैग नाम नहीं बनाने की सिफारिश करता हूं (हालांकि यह काम करता है!)। मैं xml टैग संरचना को एक और स्थिर तरीके से समझता हूं। मेरा समाधान होगा: इस तरह की विशेषता के साथ जैसे एक स्थिर XML टैग लें। आप अभी भी "तत्व [वर्ष =" 2007 "] के साथ एक्सएसएलटी और एक्सपीएथ के साथ इसका उपयोग कर सकते हैं। इसलिए आप न तो लचीलापन खो देते हैं, लेकिन सुरक्षा और स्थिरता प्राप्त करते हैं ... बस एक थूघ। –
Sauer