Reputation: 1331
Hese is the file the file.xml file xml file link
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user data-id="101">
<nom>Zorro</nom>
<metier>Danseur</metier>
</user>
<user data-id="102">
<nom>Hulk</nom>
<metier>Footballeur</metier>
</user>
<user data-id="103">
<nom>Zidane</nom>
<metier>Star</metier>
</user>
<user data-id="104">
<nom>Beans</nom>
<metier>Epicier</metier>
</user>
<user data-id="105">
<nom>Batman</nom>
<metier>Veterinaire</metier>
</user>
<user data-id="106">
<nom>Spiderman</nom>
<metier>Veterinaire</metier>
</user>
</users>
for example: I want to show the metier for each user
from lxml import etree
tree = etree.parse("file.xml")
for metier in tree.xpath("/users/user/metier"):
print(metier.text)
The script is run without problem but it shows nothing. It seems like tree.xpath("/users/user/metier")
is empty!!
Upvotes: 1
Views: 85
Reputation: 42748
tree.xpath
searches relative to the root-element <users>
. So users
must not be part of the path:
from lxml import etree
tree = etree.parse("file.xml")
for metier in tree.xpath("user/metier"):
print(metier.text)
Upvotes: 2