猿问

在python中使用美丽的汤从xml文件中提取特定标签

我有一个看起来像这样的 xml 文件(让我们调用它是 abc.xml)。


<?xml version="1.0" encoding="UTF-8"?>


<properties>

  <product name="XYZ" version="123"/>

  <application-links>

    <application-links>

      <id>111111111111111</id>

      <name>Link_1</name>

      <primary>true</primary>

      <type>applinks.ABC</type>

      <display-url>http://ABC.displayURL</display-url>

      <rpc-url>http://ABC.displayURL</rpc-url>

    </application-links>

  </application-links>

</properties>

我的 python 代码是这样的


f = open ('file.xml', 'r')

from bs4 import BeautifulSoup

soup = BeautifulSoup(f,'lxml')


print(soup.product)


for applinks in soup.application-links:

    print(applinks)

打印以下内容


<product name="XYZ" version="123"></product>

Traceback (most recent call last):

  File "parse.py", line 7, in <module>

    for applinks in soup.application-links:

NameError: name 'links' is not defined

请你能帮我理解如何打印包含破折号/连字符'-'的标签的行


慕的地6264312
浏览 169回答 1
1回答

白板的微信

我不知道beautifulsoup这里是否是最佳选择,但我真的建议ElementTree像这样在 python 中使用该模块:>>> import xml.etree.ElementTree as ET>>> root = ET.parse('file.xml').getroot()>>> for app in root.findall('*/application-links/'):...&nbsp; &nbsp; &nbsp;print(app.text)111111111111111Link_1trueapplinks.ABChttp://ABC.displayURLhttp://ABC.displayURL因此,要打印<name>标签内的值,您可以这样做:>>> for app in root.findall('*/application-links/name'):...&nbsp; &nbsp; &nbsp;print(app.text)Link_1
随时随地看视频慕课网APP

相关分类

Python
我要回答