मैं XML फ़ाइल में नेमस्पेस को अनदेखा करने के लिए ElementTree को कैसे बता सकता हूं?पायथन: xml.etree.ElementTree में नेमस्पेस को अनदेखा कर रहे हैं?
उदाहरण के लिए, मैं modelVersion
(बयान 1 के रूप में) क्वेरी करने के लिए के बजाय {http://maven.apache.org/POM/4.0.0}modelVersion
(बयान 2 के रूप में) पसंद करेंगे।
pom="""
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
</project>
"""
from xml.etree import ElementTree
ElementTree.register_namespace("","http://maven.apache.org/POM/4.0.0")
root = ElementTree.fromstring(pom)
print 1,root.findall('modelVersion')
print 2,root.findall('{http://maven.apache.org/POM/4.0.0}modelVersion')
1 []
2 [<Element '{http://maven.apache.org/POM/4.0.0}modelVersion' at 0x1006bff10>]
AFAIK डी के लिए एक आसान + साफ तरीका नहीं है ओ तो, विशेष रूप से यदि आप संभावित रूप से एकाधिक नामस्थानों से निपट रहे हैं। ऐसा लगता है कि एक डुप्लिकेट प्रश्न [यहां] (http://stackoverflow.com/q/13412496/20670) है, लेकिन यदि आप कहते हैं कि वे दृष्टिकोण आपके लिए काम नहीं करेंगे (वे दयालु हैं मुझे गंदे हैक की तरह लग रहा है)। –
इसके अलावा, ['lxml' की तलाश में लायक हो सकता है] (http://stackoverflow.com/q/14853243/20670), लेकिन यह मानक लाइब्रेरी का हिस्सा नहीं है। –
दुख की बात है कि मैं इसे किसी ऐसे व्यक्ति को भेज रहा हूं जो lxml इंस्टॉल नहीं कर सकता है। मुझे उम्मीद है कि मानक पुस्तकालय इसे कुछ दिन शामिल करता है। मैंने अपना वर्तमान समाधान पोस्ट किया जो मुझे बहुत दुखी बनाता है एक बार मैंने अपनी माँ से कहा कि मैं एक पेशेवर प्रोग्रामर था। : -/ –