XML/XPath: Difference between revisions
Content added Content deleted
(→{{header|Python}}: add ElementTree and LXML version) |
(→{{header|Python}}: fix reference to ElementTree and top level lookup) |
||
Line 1,437: | Line 1,437: | ||
doc = ET.parse('inventory.xml') # or load it directly |
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 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
# Note, ElementTree's simple XPath does not support //foo or /foo/bar syntax. |
|||
⚫ | |||
# Print each price |
# Print each price |
||
for p in doc.findall("section/item/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 |
print "{0:0.2f}".format(float(p.text)) # could raise exception on missing text or invalid float() conversion |
||
# list of names |
|||
names = doc.findall("section/item/name") # or ".//name"</lang> |
|||
Or, you can install the <tt>lxml</tt> package and get full XPath support |
Or, you can install the <tt>lxml</tt> package and get full XPath support |
||
<lang python> |
<lang python> |