首页 > 软件编程 > Python使用xpath解析带命名空间的XML

Python使用xpath解析带命名空间的XML

xpath解析XML简单明了,但是XML有命名空间的话就会出错了。解决方法是节点前加命名空间的前缀,下例中x、y是变量可以任意定义。

例如XML文档如下:

<a xmlns:a="http://www.jingfengshuo.com" xmlns:b="http://jingfengshuo.com">
    <b>Text</b>
<a>

解析代码片段:

tree = etree.parse(path)
        root = tree.getroot()        
        for child in root:
             r=child.xpath('x:a/y:b/text()',namespaces={'x': 'www.jingfengshuo.com',
               'y': 'jingfengshuo.com'})[0]

如果XML文档如下:

<a xmlns:="http://www.jingfengshuo.com">
    <b>Text</b>
<a>

解析代码片段:

tree = etree.parse(path)
        root = tree.getroot()        
        for child in root:
             r=child.xpath('x:a/x:b/text()',namespaces={'x': 'www.jingfengshuo.com'})[0]

此文系静风说原创,转载请注明出处: http://www.jingfengshuo.com/archives/1425.html

分类: 软件编程 标签: 浏览量:156 次阅读
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.