XML/XPath: Difference between revisions

→‎{{header|Python}}: fix reference to ElementTree and top level lookup
(→‎{{header|Python}}: add ElementTree and LXML version)
(→‎{{header|Python}}: fix reference to ElementTree and top level lookup)
Line 1,437:
doc = ET.parse('inventory.xml') # or load it directly
 
# Note, ElementTree's root is the top level element. So you need ".//" to really start searching from top
# Return first Item
item1 = doc.find("section/item")
 
# Return first Item
# Note, ElementTree's simple XPath does not support //foo or /foo/bar syntax.
item1 = doc.find("section/item") # or ".//item"
 
# Print each price
for p in doc.findall("section/item/price"): # or ".//price"
print "{0:0.2f}".format(float(p.text)) # could raise exception on missing text or invalid float() conversion
 
names = doc.findall("section/item/name") # list of names</lang>
names = doc.findall("section/item/name") # or ".//name"</lang>
Or, you can install the <tt>lxml</tt> package and get full XPath support
<lang python>