Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pandas中解析XML_Python_Xml_Pandas - Fatal编程技术网

Python 在pandas中解析XML

Python 在pandas中解析XML,python,xml,pandas,Python,Xml,Pandas,我有一个xml文件列表,我想在每个文件中获得两个值,以便为数据帧创建索引。我使用for循环来实现这一点,因为我有大约1000个文件,这并没有那么大,我想计算这些文件上的一些特性以存储在数据帧中 例如,第一个文件如下所示: <?xml version="1.0" encoding="utf-8"?> <tag1> <tag2> <tag3> <author>The author</au

我有一个xml文件列表,我想在每个文件中获得两个值,以便为数据帧创建索引。我使用for循环来实现这一点,因为我有大约1000个文件,这并没有那么大,我想计算这些文件上的一些特性以存储在数据帧中

例如,第一个文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<tag1>
    <tag2>
        <tag3>
            <author>The author</author>
            <title> The title </title>
        </tag3>
    </tag2>
</tag1>
我的问题是,由于文件之间的结构始终相同(标记数相同),因此标记的名称可能会从一个文件更改为另一个文件,例如:

<?xml version="1.0" encoding="utf-8"?>
<tag_1>
    <secondtag>
        <tag3>
            <author>The second author</author>
            <title> The second title </title>
        </tag3>
    </secondtag>
</tag_1>

第二作者
第二个标题

如何访问作者和标题而不事先知道标记的名称?

使用查找子节点而不是直接路径

如果它们总是作者标签和标题标签,只需在任何地方搜索即可?例如:
.xpath('//author')
?我总是有
author
和title
标记,但是当我尝试你的方法时,它不起作用,因为
树('//author')
返回了一个空列表,所以
列表索引超出了范围。尽管如此,我已经看到,被指控的文件是第一个带有以下标记的文件:
。可能是问题吗?啊。。。。因此,您需要更改xpath以包含名称空间,然后。。。
<?xml version="1.0" encoding="utf-8"?>
<tag_1>
    <secondtag>
        <tag3>
            <author>The second author</author>
            <title> The second title </title>
        </tag3>
    </secondtag>
</tag_1>