【发布时间】:2016-02-20 17:39:37
【问题描述】:
我有一个包含以下内容的 xml.etree.ElementTree 对象。
<html>
<body>
<c>
<winforms>
<type-conversion>
<opacity>
</opacity>
</type-conversion>
</winforms>
</c>
</body>
</html>
<html>
<body>
<css>
<css3>
<internet-explorer-7>
</internet-explorer-7>
</css3>
</css>
</body>
</html>
<html>
<body>
<c>
<code-generation>
<j>
<visualj>
</visualj>
</j>
</code-generation>
</c>
</body>
</html>
我想获取每个 body 标签对中的所有标签。
例如,对于上面的例子,我想要的输出是:
c, winforms, type-conversion, opactiy
css, css3, internet-explorer-7
c, code-generation,j, visualj
如何在 python 中使用 BeautifulSoup 或 ElementTree XML API 做到这一点?
【问题讨论】:
-
请发布您的代码。
-
我无法编码。上面提到的xml数据是xml.etree.ElementTree对象的形式。我想知道是否有一个函数
xmltreeobject.functionName()可以返回给定根节点的所有嵌套子节点。 -
这不是一个有效的 xml 文档,看起来像多个文档组合在一起,所以大概有一个外部标签包装了所有这些 xml 文档。您可能正在寻找
ElementTree.findall(),它采用查找所有元素的路径,例如root.findall('html/body')或root.findall('.//body')[任何深度] 将返回所有body标记(假设所有 xml 文档的包装标记)。
标签: python xml beautifulsoup elementtree