python etree详解_使用lxml.etree解析python alexa结果

您遇到两个挑战:

>使用名称空间的XML

>两个共享相同名称空间前缀的名称空间

具有两个不同名称空间重用前缀的XML文档

您会看到“ aws:”前缀,但是它用于两个不同的名称空间:

xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"

xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11"

在XML中使用相同的名称空间前缀是完全合法的.规则是,后一个有效.

xmlstr = """

ccf3f263-ab76-ab63-db99-244666044e85

google.com/

Google

Enables users to search the world's information, including webpages, images, and videos. Offers unique features and search technology.

15-Sep-1997

3453627

google.com/

1

Success

"""

下一个挑战是如何搜索命名空间元素.

我更喜欢使用xpath,为此,您可以在xpath表达式中使用所需的任何名称空间,但是您必须告诉xpath调用这些前缀的含义.这是通过命名空间字典完成的:

from lxml import etree

doc = etree.fromstring(xmlstr.strip())

namespaces = {"aws": "http://awis.amazonaws.com/doc/2005-07-11"}

texts = doc.xpath("//aws:LinksInCount/text()", namespaces=namespaces)

print texts[0]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值