使用特定父标签解析 XML

发布于 2025-01-12 13:09:59 字数 465 浏览 1 评论 0原文

<?xml version="1.0" encoding="utf-8"?>
  <ReturnHeader>
    <Bob>
      <Age>39</Age>
      <PhoneNum>2222</PhoneNum>
    </Bob>
    <John>
      <Age>70</Age>
      <PhoneNum>4444</PhoneNum>
    </John>
  </ReturnHeader>

从上面的 XML 中,我试图仅获取 Bob 的电话。 (即,当鲍勃是“真”时)。

我需要以下输出:

PhoneNum 2222

我尝试使用 Xpath 进行 lxml,但没有成功。任何帮助表示赞赏。

<?xml version="1.0" encoding="utf-8"?>
  <ReturnHeader>
    <Bob>
      <Age>39</Age>
      <PhoneNum>2222</PhoneNum>
    </Bob>
    <John>
      <Age>70</Age>
      <PhoneNum>4444</PhoneNum>
    </John>
  </ReturnHeader>

From the above XML, I'm trying to get only the phone of Bob. (i.e., when Bob is 'True).

I need the following output:

PhoneNum 2222

I tried lxml with Xpath, but no luck. Any help is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心欲静而疯不止 2025-01-19 13:09:59

尝试下面的

import xml.etree.ElementTree as ET

xml = '''<?xml version="1.0" encoding="utf-8"?>
  <ReturnHeader>
    <Bob>
      <Age>39</Age>
      <PhoneNum>2222</PhoneNum>
    </Bob>
    <John>
      <Age>70</Age>
      <PhoneNum>4444</PhoneNum>
    </John>
  </ReturnHeader>'''

NAME_TO_FIND = 'Bob'
root = ET.fromstring(xml)
for ele in root:
  if ele.tag == NAME_TO_FIND:
    print(f'The phone number of {NAME_TO_FIND} is {ele.find("PhoneNum").text}')
  else:
    print(f'I am not interested in the phone number of {ele.tag}')

输出

The phone number of Bob is 2222
I am not interested in the phone number of John

Try the below

import xml.etree.ElementTree as ET

xml = '''<?xml version="1.0" encoding="utf-8"?>
  <ReturnHeader>
    <Bob>
      <Age>39</Age>
      <PhoneNum>2222</PhoneNum>
    </Bob>
    <John>
      <Age>70</Age>
      <PhoneNum>4444</PhoneNum>
    </John>
  </ReturnHeader>'''

NAME_TO_FIND = 'Bob'
root = ET.fromstring(xml)
for ele in root:
  if ele.tag == NAME_TO_FIND:
    print(f'The phone number of {NAME_TO_FIND} is {ele.find("PhoneNum").text}')
  else:
    print(f'I am not interested in the phone number of {ele.tag}')

output

The phone number of Bob is 2222
I am not interested in the phone number of John
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文