में से निपटने स्थिति:नाम स्थान Groovys XmlSlurper
def str = """
<foo xmlns:weird="http://localhost/">
<bar>sudo </bar>
<weird:bar>make me a sandwich!</weird:bar>
</foo>
"""
def xml = new XmlSlurper().parseText(str)
println xml.bar
इस स्निपेट के उत्पादन
# sudo make me a sandwich!
ऐसा लगता है पार्सर तरह <bar>
और <weird:bar>
की सामग्री को विलीन हो जाती है है।
क्या यह व्यवहार वांछित है और यदि हां, तो मैं इससे कैसे बच सकता हूं और केवल <bar>
या <weird:bar>
का चयन कर सकता हूं?
धन्यवाद, कि कुछ चीजें :) मैं अलग xmls को पार्स कर रहा हूँ और मैं नहीं जानता कि जो नामस्थान वे उपयोग कर रहे बताते हैं; क्या 'println xml' के आउटपुट को प्राप्त करने की कोई संभावना है: बार 'नामस्थानों के लिए रूट तत्व को पार्स करने और उन्हें घोषित करने के अलावा? – codeporn
मुझे लगता है कि XmlSlurper नाम स्थान डिफ़ॉल्ट रूप से अवगत है, 'नई XmlSlurper() के बाद से -> नई XmlSlurper (गलत, सच)': http://stackoverflow.com/questions/33418826/are-xmlparser-and-xmlslurper-namespace- जागरूक-द्वारा-डिफ़ॉल्ट – jalopaba
उह। किसी कारण से, यह मेरे लिए काम नहीं कर रहा है। मैं एक आरएसएस दस्तावेज़ को पार्स कर रहा हूं जिसमें हेडर में घोषित नामस्थान हैं। link'.text() और rss.channel.'atom:: मैं rss.channel.link लेकिन rss.channel.'atom पहुँच सकते हैं। लिंक '@ href.text() सभी रिक्त मान। लेकिन अरे, मैं क्यों जब शीर्षक में xmlns तत्व में है यह करने के लिए होना चाहिए :( – Umopepisdn