Pythonでodtファイルを編集する際に大きな問題がいくつかあります。私は etree の方法を選択しましたが、elementpath の構文を理解するのは非常に困難です。ノード内のテキストが xpath 構文の xml でもノードであることをどこかで見たことがありますが、elementpath がそれをノードと見なすかどうかはわかりません...まあ、私は迷っています...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import StringIO
from lxml import etree
xmldata = '''\
<?xml version="1.0" encoding="UTF-8"?>
<document-content xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" >
<text:span text:style-name="T2">water is good</text:span>
<text:span text:style-name="T3">#QUALITE#</text:span>
<text:span text:style-name="T2">#AUTEUR#</text:span>
<text:span text:style-name="T2">#QUALITE#</text:span>
<text:span text:style-name="T4">#AUTEUR#</text:span>
<text:p text:style-name="P14"></text:p>
</document-content>
'''
fakefile = StringIO.StringIO(xmldata)
root = etree.parse(fakefile).getroot()
fakefile.close()
nspace = {}
nspace["t"] = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
query = root.find('.//t:span[@t:style-name="T2"]', nspace)
print query.text
#AUTEUR# テキストでノードを選択するための検索条件を変更するにはどうすればよいですか?