如何在 BeautifulSoup ISO 标签中转义父属性实际上命名为 <parent>?
Posted
技术标签:
【中文标题】如何在 BeautifulSoup ISO 标签中转义父属性实际上命名为 <parent>?【英文标题】:How to escape parent attribute in BeautifulSoup ISO tag actually named <parent>? 【发布时间】:2014-02-04 15:39:43 【问题描述】:好的,这有点好笑。这是 XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>com.parent</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<build>
<sourceDirectory>src</sourceDirectory>
</build>
我想使用简单的BeautifulSoup
分层符号来获取实际名为<parent>
的节点,但parent
实际上是此API 中的保留属性标签。
with open(pom) as pomHandle:
soup = BeautifulSoup(pomHandle)
#this returns the proper build node
buildNode = soup.project.build
#this does not return the proper parent node but the XML parent of the project node
#(which is the whole doc) because 'parent' is reserved
parentNode = soup.project.parent
如何覆盖此限制?
【问题讨论】:
删除了我的答案,好像我错过了什么。我认为,alecxe 的回答应该足够了。 【参考方案1】:您可以改用find()
:
soup.project.find('parent')
本质上这是一样的,因为 BeautifulSoup
在 Tag
类的 __getattr__()
方法中使用 find
底层。
希望对您有所帮助。
【讨论】:
哥们,你太棒了以上是关于如何在 BeautifulSoup ISO 标签中转义父属性实际上命名为 <parent>?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BeautifulSoup.BeautifulStoneSoup 中维护区分大小写的标签?
如何使用 BeautifulSoup 从 HTML 中去除评论标签?
如何在 BeautifulSoup 中访问名为“name”的标签