我使用BeautifulSoup和lmxl解析器解析SGML文档。
我解析SGML,然后使用BeautifulSoup检查树是否需要纠正各种条件。当我找到一个条件时,我想确定它是否是标记revst
的孩子。
当我找到条件并迭代.parents
时,我找不到<revst>
作为父级,即使在检查文档时,<revst>
在树中也存在。
如果我致电soup('revst')
,则会识别所有revst
,并且可以对其进行操作。
我已经尝试了lxml
,xml
和html5lib
解析器,但他们都错过revst
作为父母。
我可以想出两种方法来纠正这个问题:
revst
添加到BeautifulSoup库,以便在.parents
soup.revst
与soup.elementIcareAbout.name
进行比较,看看是否有孩子我不清楚如何执行这些方法中的任何一种。还有其他选择来处理这个吗?
我还尝试etree
解析但得到解析错误......
以下是我正在使用的代码:
x=soup('extref')
for i in range(0,len(x)):
for parent in x[i].parents:
r = parent.name
print(r)
然后r给出了x中找到的每个元素的父标签列表。
此列表应包含&#39; revst&#39;对于某些元素,但没有。