0

我在下面有以下 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. 我在 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)

但现在我想知道如何继续获取文本。任何建议,将不胜感激。谢谢

4

2 回答 2

1

关于什么

>>> import re
>>> telems = d.xpath('.//a:r[not(.//a:hlinkClick)]//a:t/text()', namespaces=NAMESPACES)
>>> joined_text = ''.join(telems).strip()
>>> re.sub('\s+', ' ', joined_text)
'Go for a test-drive.'
于 2013-10-04T13:47:43.120 回答
0

如果您有一个 xmlObject,您可以迭代该对象并为每个标签获取它的文本和属性。

我正在使用元素树,请在此处查看 python 文档

于 2013-10-03T13:49:02.087 回答