python - 在python中提取xml标签之间的文本

标签 python xml

我在下面有 xml 字符串,并尝试在每个 entry 标签的标签 domain、receive_time、serial 和 seqno 之间打印文本。

xml="""
<response status="success" code="19"><result><msg><line>query job enqueued with jobid 19032</line></msg><job>19032</job></result></response>
19032
<response status="success"><result>
  <job>
    <tenq>14:10:09</tenq>
    <tdeq>14:10:09</tdeq>
    <tlast>19:00:00</tlast>
    <status>ACT</status>
    <id>19032</id>
    <cached-logs>64</cached-logs>
  </job>
  <log>
    <logs count="20" progress="29">
      <entry logid="2473601">
        <domain>1</domain>
        <receive_time>2017/11/26 14:10:08</receive_time>
        <serial>007901004140</serial>
        <seqno>10156449120</seqno>
      </entry>
      <entry logid="2473601">
        <domain>1</domain>
        <receive_time>2017/11/26 14:10:08</receive_time>
        <serial>007901004140</serial>
        <seqno>10156449120</seqno>
      </entry>
      </logs>
  </log>
</result></response>
"""

使用 xml.etree.ElementTree。为了获取 domain 标记之间的内容,我尝试了 node.attrib.get('domain')node.get('domain')。 .请指教

import xml.etree.ElementTree as ET
tree = ET.fromstring(xml)
for node in tree.iter('entry'):
        print node

也可以是其他python库,不一定是xml.etree。我不想盲目地在标签之间打印文本,我需要打印标签名称后跟文本,即:

domain: 1
receive_time: 2017/11/26 14:10:08
serial: 007901004140
seqno: 10156449120

etc

最佳答案

您首先使用 find() 方法找到 domain 标记。然后,tag 属性和 text 属性应该获取您要查找的详细信息 -

import xml.etree.ElementTree as ET
tree = ET.fromstring(xml)
for node in tree.iter('entry'):
    print('\n')
    for elem in node.iter():
        if not elem.tag==node.tag:
            print("{}: {}".format(elem.tag, elem.text))

希望这对您有所帮助!

输出-

domain: 1
receive_time: 2017/11/26 14:10:08
serial: 007901004140
seqno: 10156449120


domain: 1
receive_time: 2017/11/26 14:10:08
serial: 007901004140
seqno: 10156449120

关于python - 在python中提取xml标签之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47500129/

相关文章:

python - 如何过滤所有包含 N 个或更多字符的单词?

c# - 如何使用客户端语言 (JavaScript) 在 SharePoint 中编写/修改 xml 文件

python - 无法导入 gsutil

Python 3.5 ctypes libc printf() 仅打印字符串的第一个字节 Windows 7/10

python scipy.optimize.newton 说它不收敛,但它似乎会收敛

python - 在 Python 上将数据写入 CSV 会将所有数据写入第一列

javascript - 为什么我的 JavaScript XML 处理代码在 Safari 中不起作用?

xml - 如何在 FXML 文件中使用 java 变量?

xml - 如何从 Github 下载文本文件?

html - 用于制表 XML 的通用 XSLT