2017-10-26 16 views
0

XPathを使用してXMLからデータを抽出するには、Python 2.7、lxml 3.7.3、およびexlstという拡張子を使用します。 lxml documentationが示唆するように、ノードをテストするときにregex拡張を使うことができます。抜粋:lxmlの文字列をregexに置き換える

>>> regexpNS = "http://exslt.org/regular-expressions" 
>>> find = etree.XPath("//*[re:test(., '^abc$', 'i')]", 
...     namespaces={'re':regexpNS}) 

>>> root = etree.XML("<root><a>aB</a><b>aBc</b></root>") 
>>> print(find(root)[0].text) 
aBc 

ノードtext()の部分文字列のみを生成するために、xpath式を使用します。 どうすればいいですか?

+1

ここではどんな出力を期待していますか? – Jan

+0

あなたが何を求めているか分かりません。あなたは今得ているアウトプットと期待しているアウトプットを例に挙げることができますか? – Jokab

答えて

0

ここではXPath式を使用するには、一つは

import xml.etree.ElementTree as ET 
root = ET.fromstring("<root><a>aB</a><b>aBc</b></root>") 

for item in root.findall(".//b"): 
    print(item.text) 
    # aBc 

を行うことができ、より多くの例のための彼らのdocumentation pageを参照してください。

関連する問題