【发布时间】:2012-09-10 14:40:17
【问题描述】:
我有一个格式类似于 docx 的 xml 文件,即:
<w:r>
<w:rPr>
<w:sz w:val="36"/>
<w:szCs w:val="36"/>
</w:rPr>
<w:t>BIG_TEXT</w:t>
</w:r>
我需要在源 xml 中获取BIG_TEXT 的索引,例如:
from lxml import etree
text = open('/devel/tmp/doc2/word/document.xml', 'r').read()
root = etree.XML(text)
start = 0
for e in root.iter("*"):
if e.text:
offset = text.index(e.text, start)
l = len(e.text)
print 'Text "%s" at offset %s and len=%s' % (e.text, offset, l)
start = offset + l
我可以从当前index + len(text) 的位置开始新的搜索,但是还有其他方法吗?元素可能只有一个字符,例如w。它将找到w 的索引,而不是标签文本w 的索引。
【问题讨论】:
-
您希望索引具有什么价值?行号+列?字节偏移?到目前为止,您尝试了哪些方法,但没有成功?