2009-08-21 2 views
6

का उपयोग कर एक्सएमएल में XPath क्वेरी एक्सएमएल प्रोसेस करते समय पाइथन में XPath क्वेरी का उपयोग करना संभव है। मैं मिनीडॉम का उपयोग कर रहा हूं जो इसका समर्थन नहीं करता है। क्या इसके लिए कोई अन्य मॉड्यूल है?पाइथन

उत्तर

7

http://docs.python.org/library/xml.etree.elementtree.html

etree, XPath प्रश्नों का समर्थन करता है बस lxml की तरह।

ईट्री मानक पुस्तकालय में शामिल है, लेकिन एलएक्सएमएल तेज है।

+1

समर्थन हालांकि ElementTree में सीमित है, के रूप में में उद्धृत [अजगर 3 डॉक्स] (https://docs.python.org/3 /library/xml.etree.elementtree.html#xpath-support): "यह मॉड्यूल एक पेड़ में तत्वों को ढूंढने के लिए XPath अभिव्यक्तियों के लिए सीमित समर्थन प्रदान करता है। लक्ष्य संक्षिप्त वाक्यविन्यास के एक छोटे से सबसेट का समर्थन करना है; एक पूर्ण XPath इंजन है मॉड्यूल के दायरे के बाहर। " –

2

पायथन के लिए मेरी पसंदीदा एक्सएमएल प्रोसेसिंग लाइब्रेरी lxml है, क्योंकि यह libxml2 के चारों ओर एक रैपर है, यह पूर्ण XPath का भी समर्थन करता है।

4Suite भी है जो शुद्ध पायथन समाधान से अधिक है।

1

एलिमेंटट्री शामिल है। 2.6 के तहत और उसके xpath नीचे बहुत कमजोर है, लेकिन 2.7 much improved में: XPath के लिए

import xml.etree.ElementTree as et 
root = et.parse(filename) 
result = '' 

# How to make decisions based on attributes even in 2.6 
for e in root.findall('.//child/grandchild'): 
    if e.attrib.get('name') == 'foo': 
     result = e.text 
     break