简体   繁体   English

用python解析xml文件

[英]Parse an xml file with python

Hese is the file the file.xml file xml file link Hese是该文件file.xml文件xml文件链接

<?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!! 好像tree.xpath("/users/user/metier")是空的!

tree.xpath searches relative to the root-element <users> . tree.xpath相对于根元素<users> So users must not be part of the path: 因此, users一定不能成为路径的一部分:

from lxml import etree

tree = etree.parse("file.xml")
for metier in tree.xpath("user/metier"):
    print(metier.text)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM