0

我需要在 XML 网页中搜索 id "1438" 并返回其下方某些元素中的文本,例如 YES、10:00、NO。我从不知道数据/标签的位置,因此我总是需要搜索整个文档。

<type="home">
    <name="wo" id="1438">
        <category name="m1" id="2">
        <date="17.06.2013" time="">
           <status="YES" time="10:00" id="654657">
               <winner="NO" _won="0" id="2714"/>
               <winner="YES" _won="0" id="2943"/>
    </won>

到目前为止我有

result = urllib.urlopen("URL")
html = result.read()
parser = etree.HTMLParser()
tree   = etree.parse(StringIO.StringIO(html), parser)

doc = lxml.html.document_fromstring(html)

print doc.xpath(u'.//[text()="1438"]/text()')

但是我只是收到以下错误

 lxml.etree.XPathEvalError: Invalid expression

我想我的 xpath 表达式是错误的,但是在搜索了示例之后,我并没有真正找到任何清晰的教程,如果有人知道任何(新手友好)示例,我将非常感激能够指导他们。我会使用 BS4,但是我有很多要处理的数字,而且我知道 lxml 更快。如果这是一个愚蠢的问题,对不起!

谢谢!

4

1 回答 1

0

尝试这个:

doc.xpath(u'//*[id="1438"]/text()')
于 2013-06-17T00:52:22.380 回答