以下に、次の 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
ノードをループしてtext
、子なしでノードから抜け出すa:hlinkClick
必要があります。たとえば、出力は次のようになります。
Go for a test drive .
リンクは である必要がありますexculded
。link
唯一のものを取得するために、Pythonで次のことを行いました。
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)
しかし、今はテキストだけを取得する方法を知りたいと思っています。任意の提案をいただければ幸いです。ありがとう