2015-07-19 147 views
2

解析XLIFF文件我不能解析此XLIFF片段:使用lxml的圖書館

<source>text1 <g id="1">text2</g> text3 <x id="2"/><x id="3"/>text4</source> 

我想有它運行在源標籤的迭代方法,並填寫像

parsed_source[0]='text1' 
parsed_source[1]='<g id="1">text2</g>' 
parsed_source[2]='text3' 
parsed_source[3]='<x id="2"/>' 
parsed_source[4]='<x id="3"/>' 
parsed_source[5]='text4' 

所以,我可以對XML片段[1]再次迭代,[3]和[4]如果需要的話...

使用lxml例如:

from lxml import etree 
tree = etree.iterparse('aFile.xlf') 
for action, elem in tree: 
    print("%s: %s %s" % (action, elem.tag, elem.text)) 

我得到類似的東西:

end: source text1 
end: g text2 
end: x None 
end: x None 

而且我不能夠解析text3text4 ......我該怎麼辦呢?謝謝

回答

2

您需要考慮tail屬性(元素後面的文本)。在這裏閱讀:http://infohost.nmt.edu/tcc/help/pubs/pylxml/web/etree-view.html

下面的代碼片段(代碼略有修改)演示了:

from lxml import etree 

tree = etree.iterparse('aFile.xlf') 
for action, elem in tree: 
    print("%s: %s %s %s" % (action, elem.tag, elem.text, elem.tail)) 

輸出:

end: g text2 text3 
end: x None None 
end: x None text4 
end: source text1 None 
+0

感謝...這就是我一直在尋找! – Attilio