在 Python 中提取 XML 标签并保留标签顺序和层次结构

奥克罗希亚什维利

我有 XML 文件,我只想解析标签,但我需要保留该标签的层次结构和顺序。我曾经xml.etree.ElementTree这样做过,但我提取了唯一的标签列表。

我的 XML 看起来像:

<Collection variable="value">
    <Genre variable="value">
        <Timestamp>2017-05-15T18:14:07-05:00</Timestamp>
        <Date>2016-12-31</Date>
        <Identifier>
          <id>123456789</id>
          <Name>
            <BusinessName>AB & co</BusinessName>
          </Name>
        </Identifier>
    </Genre>
</Collection>

并且所需的输出应该是带有父标签的标签列表

['Collection/Genre',
 'Collection/Genre/Timestamp',
 'Collection/Genre/Date',
 'Collection/Genre/Identifier/id',
 'Collection/Genre/Identifier/Name/BusinessName']

任何帮助将不胜感激。

詹姆士

扩展@mzjn 的评论,您可以使用该lxml包从 ElementTree 中提取路径。此外,作为旁注,与号是 XML 中的保留字符。

from lxml import etree


x = '''<Collection variable="value">
    <Genre variable="value">
        <Timestamp>2017-05-15T18:14:07-05:00</Timestamp>
        <Date>2016-12-31</Date>
        <Identifier>
          <id>123456789</id>
          <Name>
            <BusinessName>AB and co</BusinessName>
          </Name>
        </Identifier>
    </Genre>
</Collection>'''

xml = etree.fromstring(x)
tree = xml.getroottree()
paths = [tree.getpath(d) for d in xml.iterdescendants()]

paths
# returns:
['/Collection/Genre',
 '/Collection/Genre/Timestamp',
 '/Collection/Genre/Date',
 '/Collection/Genre/Identifier',
 '/Collection/Genre/Identifier/id',
 '/Collection/Genre/Identifier/Name',
 '/Collection/Genre/Identifier/Name/BusinessName']

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用python从多个XML节点和层次结构中提取信息?

来自分类Dev

从XML标签中提取数据

来自分类Dev

如何使用python和BeautifulSoup在xml中提取父元素的标签

来自分类Dev

如何使用python从本地xml文件中提取特定的xml标签?

来自分类Dev

从 XML 中提取特定标签并在 Python 中写入新的 XML

来自分类Dev

从XML结果集中的标签中提取数据

来自分类Dev

从 XML 标签中提取整数值

来自分类Dev

使用Python ElementTree从XML中提取值

来自分类Dev

python脚本从XML文件中提取短语

来自分类Dev

无法从python中的xml中提取文本

来自分类Dev

使用 Python 3 从 xml 中提取数据

来自分类Dev

使用Python从xml文件中提取数据

来自分类Dev

使用python从xml提取标签

来自分类Dev

从标签beautifulsoup python中提取类名

来自分类Dev

尝试使用 Python 从标签中提取“文本”

来自分类Dev

在 PYTHON 中提取标签中的单词

来自分类Dev

从xml字符串中提取xml标签

来自分类Dev

从结构不良的XML文件中提取数据

来自分类Dev

根据标签中的值从日志中提取多行XML

来自分类Dev

从Java中的xml中提取特定的冗余标签

来自分类Dev

使用BS4和Python提取异常的XML标签

来自分类Dev

Python:通过维护层次结构解析xml以获取属性值作为键和标签值作为值

来自分类Dev

使用python从xml数据中提取所有文本

来自分类Dev

如何从Python中的XML文件中提取@value?

来自分类Dev

从xml文件中提取项目并使用python创建数据框

来自分类Dev

使用Python ElementTree从xml文档中提取文本

来自分类Dev

如何使用Python从API响应中提取特定的XML行

来自分类Dev

使用Python从XML字符串中提取数据

来自分类Dev

解析xml文件并在python中提取<cite>

Related 相关文章

热门标签

归档