使用lxml和python查找子xml元素后如何获取父xml元素

用户名

我有一个很难解决的难题。自从我使用LXML以来已经很久了,我需要一些帮助才能开始。我有一个XML文件,其中包含类别和代理元素的列表。请查看下面的代码段:

<categories>
  <category name="Light">
    <proxy>fan</proxy>
  </category>
  <category name="UI">
    <proxy>doorbell</proxy>
  </category>
</categories>

我想做的是搜索所有代理元素以找到“门铃”。如果找到,我想知道它来自的父元素的名称。因此,在上面的示例中,门铃将在父类别元素“ UI”下找到。最后,我只需要代理所属的父元素的“名称”属性值即可。

那里有大师想要帮助我解决这个问题吗?

查尔斯·达菲

如果您只需要名称,那么最好一次搜索即可:

import lxml.etree as ET

root = ET.XML('''
<categories>
  <category name="Light">
    <proxy>fan</proxy>
  </category>
  <category name="UI">
    <proxy>doorbell</proxy>
  </category>
</categories>
''')

category_names = root.xpath(
  './/proxy[. = $proxy_type]/parent::category/@name',
  proxy_type='doorbell')

print category_names

...如人们所期望的那样:

['UI']

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

python lxml - 如何在 XML 中获取子元素的值

Python-使用lxml查找特定的XML元素

在Python lxml中访问子XML元素

如何使用 python 将父元素的属性传递给 XML 中的子元素?

Python LXML:如何获取人类可读的XPath for XML元素?

如何使用lxml从根元素获取XML前缀声明

如何从Java中的XML获取父元素属性和子值?

使用Python lxml从XML文档中获取几个元素

如何查找嵌套元素 XML 标记的父节点,Python 3.6

特定父元素的 XML 循环以查找子元素

如何使用与父名称相同的子元素解析xml

如何在Python中通过LXML引用父对象并删除RSS XML中的父元素?

根据父元素的值获取xml的子元素

如何递归获取lxml中的特定元素和子元素?

如何使用 XSLT 和 Python 将 xml 的子子元素移动到新的 xml 文件?

如何使用带有 lxml 和 python 的预先存在的 etree 元素创建 xml 文档?

从XML移除父元素和所有子元素

使用xpath查找具有某些特定文本的xml元素,或使用lxml在python中查找

如何使用 PYTHON 删除 XML 中的子元素/元素

如何使用Selenium / python将所有xml / dom作为文本在父Web元素下获取?

使用e.target后如何获取整个(父)元素而不只是特定的子元素

如何通过 Puppeteer 获取父元素和子元素?

无法使用LXML通过标签在XML中查找元素

使用Python和lxml检索XML父级和子级属性

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

如何使用LINQ获取XML中的子元素值

使用 Python 从 xml 文件中获取子元素值

如何使用 XSLT 在 XML 中删除父元素并向上移动子元素

使用 python lxml 获取 Excel xml 的父属性