XML ファイルのサンプル
<GateDocument>
<GateDocumentFeatures>
...
</GateDocumentFeatures>
<TextWithNodes>
<Node id="0"/>
MESSAGE SET
<Node id="19"/>
<Node id="20"/>
1. 1/1/09 - sample text 1
<Node id="212"/>
sample text 2
<Node id="223"/>
sample text 3
...
<Node id="160652"/>
</TextWithNodes>
<AnnotationSet></AnnotationSet>
<AnnotationSet Name="SomeName">
...
</AnnotationSet>
</GateDocument>
始めに、Python でコーディングして XML を扱うのはこれが初めてです。
私の目標は、特定のノード ID でサンプル テキストを抽出することです。
最初の試み - minidom を使用しましたが、これにより、抽出 (http://stackoverflow.com/questions/11122736/extracting-text-from-xml-node-with-minidom) を処理する正しい方法が得られませんでした。自己終了タグのノード ID の奇妙な形式。
2回目の試行-lxmlを見て提案を取り上げました。テキストを次のように抽出することに成功しました:
['\n\t\t','n\t\tMESSAGE SET\n\t\t','\n\t\t','\n\t\t1. 1/1/09 - sample text 1,....,'\n\t']
いくつかのクリーンアップで、テキストをうまく取得できると思いますが、関連するノード ID 値が失われます。
コードで:
from lxml import etree
from StringIO import StringIO
xmlfile = ('C:\...AnnotationsXML.xml')
xmldoc = etree.parse(xmlfile)
print xmldoc.xpath("//TextWithNodes/text()")
だから私は私の質問は次のとおりだと思います:
- \n\t\t なしで上記を抽出する方法はありますか? スペースの書式設定(つまりタブ)であると読みましたが、どこに
<Node id = 0>
行ったのかわかりません。 - このファイルを抽出するためのより良い、またはより効率的な方法はありますか?
ありがとう!