在标记中搜索XML文档以查找字符串

时间:2013-06-17 00:32:13

标签: python lxml

我需要在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要快得多...对不起,如果这是一个愚蠢的问题!

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

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