如何使用python xml.dom.minidom获取ElementsByClassName?

时间:2013-06-17 18:37:16

标签: python xml-parsing minidom

我想获得具有特定类的所有元素的主体。

Python xml.dom.minidom有一个按id getElementById()获取元素的方法,但我需要获取所有具有特定类的元素。

我如何获得这个?

请注意,如果使用minidom无法做到这一点,请提供一个简单的替代方案,以便我可以获得此类元素的完整内容。完整内容我的意思是它们下面的所有子节点和文本,作为一个简单的字符串。

1 个答案:

答案 0 :(得分:2)

我建议你使用lxml而不是xml.dom.minidom。

使用lxml.html / cssselect:

import lxml.html

root = lxml.html.fromstring(document_string)
for elem in root.cssselect('elem.class'):
    print(elem.tag)
    print(elem.get('src'))

使用lxml.etree / xpath:

import lxml.etree

root = lxml.etree.fromstring(document_string)
for elem in root.xpath('.//elem[contains(@class, "class")]'):
    print(elem.tag)
    print(elem.get('src'))