【发布时间】:2013-10-03 13:35:20
【问题描述】:
我有以下 XML 示例:
<a:p>
<a:r>
<a:rPr lang="en-US" dirty="0"/>
<a:t>Go for a </a:t>
</a:r>
<a:r>
<a:rPr lang="en-US" dirty="0" smtClean="0"/>
<a:t>test-drive</a:t>
</a:r>
<a:r>
<a:rPr lang="de-DE" dirty="0" smtClean="0">
<a:hlinkClick r:id="rId11"/>
</a:rPr>
<a:t>http</a:t>
</a:r>
<a:r>
<a:rPr lang="de-DE" dirty="0">
<a:hlinkClick r:id="rId11"/>
</a:rPr>
<a:t>://</a:t>
</a:r>
<a:r>
<a:rPr lang="de-DE" dirty="0" smtClean="0">
<a:hlinkClick r:id="rId11"/>
</a:rPr>
<a:t>google.com</a:t>
</a:r>
<a:r>
<a:rPr lang="de-DE" dirty="0" smtClean="0"/>
<a:t>.</a:t>
</a:r>
</a:p>
我必须遍历所有a:r 节点并从没有子节点a:hlinkClick 的节点中获取text。例如,输出应如下所示:
Go for a test drive .
链接必须是exculded。我在 python 中完成了以下操作以仅获取link:
if d.xpath('./a:r/a:rPr[@dirty="0"]/a:hlinkClick[@r:id]', namespaces=NAMESPACES) != []:
e = d.xpath('./a:r/a:rPr/a:hlinkClick/../../a:t/text()', namespaces=NAMESPACES)
print ''.join(e)
但现在我想知道如何才能继续只获取文本。任何建议,将不胜感激。谢谢
【问题讨论】:
标签: python python-2.7 xpath xslt-1.0 lxml