我有一个看起来像这样的 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 BeautifulSoupsoup = 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请你能帮我理解如何打印包含破折号/连字符'-'的标签的行
1 回答
白板的微信
TA贡献1883条经验 获得超3个赞
我不知道beautifulsoup这里是否是最佳选择,但我真的建议ElementTree像这样在 python 中使用该模块:
>>> import xml.etree.ElementTree as ET
>>> root = ET.parse('file.xml').getroot()
>>> for app in root.findall('*/application-links/'):
... print(app.text)
111111111111111
Link_1
true
applinks.ABC
http://ABC.displayURL
http://ABC.displayURL
因此,要打印<name>标签内的值,您可以这样做:
>>> for app in root.findall('*/application-links/name'):
... print(app.text)
Link_1
添加回答
举报
0/150
提交
取消
