1

我正在使用 lxml 库...我在一个xml名为的文件中有一个标签

<a:rPr lang="en-US" dirty="0" smtClean="0"/> 并且前缀a指的是命名空间

a="http://schemas.openxmlformats.org/drawingml/2006/main"^

当我使用 lxml-Xpath 获取标签名称时,a:rPr我得到的结果为{http://schemas.openxmlformats.org/drawingml/2006/main}rPr'

这是我写的代码片段:

if doc == 'file.xml':
        file = etree.parse(my_directory+doc)
        path = file.xpath('/p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr', namespaces={'p':'http://schemas.openxmlformats.org/presentationml/2006/main',
            'a':'http://schemas.openxmlformats.org/drawingml/2006/main'})
        #print path
        for a in path:
            print a.tag

我使用了 xml.minidoma.nodeName来获取标记名,但我不知道哪个函数可以给我没有命名空间的标记名,即a:rPr在 lxml 中?提前致谢。

4

1 回答 1

0

使用 xpath 的name()

for a in path:
    print a.xpath('name()')  # prints a:rPr

希望有帮助。

于 2013-05-21T20:14:59.527 回答