2016-03-28 12 views
2

は元の順序リストを取得するためにlxmlのとXPathを使用する方法

<a> 
 
aaaa 
 
<b> 
 
bbbb 
 
</b> 
 
cccc 
 
<d> 
 
dddd 
 
<f> 
 
ffff 
 
</f> 
 
gggg 
 
</d> 
 
eeee 
 
</a>

でlxmlのXPathを使用してXML内のすべてのテキストノードを取得します。結果は[aaaa、bbbb、cccc、dddd、fff、gggg、eeee]でなければなりません。 結果を得るのにxpath(u "/ descendant :: [text()]")と xpath(u "/ descendant :: [text])")関数を使用できますが、

答えて

2
>>> xml = "<a>aaaa<b>bbbb</b>cccc<d>dddd<f>ffff</f>gggg</d>eeee</a>" 
>>> root = lxml.etree.fromstring(xml) 
>>> root.xpath(".//text()") 
['aaaa', 'bbbb', 'cccc', 'dddd', 'ffff', 'gggg', 'eeee'] 
+0

本当に役に立ちます。どうも –