pythonxml解析:返回特定属性标记值

2024-06-01 13:58:54 发布

您现在位置:Python中文网/ 问答频道 /正文

假设这是XML输出的一个片段,我只对下面突出显示的name=“app”数据(即搜索)感兴趣:

      <s:key name="modifiable">1</s:key>
      <s:key name="sharing">global</s:key>
      **<s:key name="app">search</s:key>**
      <s:key name="can_write">1</s:key>
      <s:key name="ttl">600</s:key>

是否可以使用xml.dom.minidom方法返回该特定值而不必迭代?在

我知道如何使用以下方法将上述内容保存到列表中:

^{pr2}$

然后迭代键列表并使用“if”匹配语句:

iter.attributes['name'].value == "app"

但是,我想知道是否有一个函数可以提供我想要的信息…比如

keysList.getAttribute(name="app").value

Tags: 数据方法keynameapp列表searchvalue
1条回答
网友
1楼 · 发布于 2024-06-01 13:58:54

我相信xml.dom.minidom没有任何这样的函数可以直接获得所需的数据search。而且它也不支持xpath。在

您应该尝试使用支持xpath的xml解析库,比如^{}或{a2}。在

使用^{}-

>>> import xml.etree.ElementTree as ET
>>> s="""<root>      <key name="modifiable">1</key>
...       <key name="sharing">global</key>
...       <key name="app">search</key>
...       <key name="can_write">1</key>
...       <key name="ttl">600</key></root>"""
>>> root = ET.fromstring(s)
>>> root.find('.//key[@name="app"]').text
'search'

或者^{}-

^{pr2}$

对于xml.dom.minidom,您必须像现在这样通过迭代getElementByTagName('s:key')的结果来完成。在

相关问题 更多 >