python lxml etree_Python:在lxml.etree路径

我试图弄清楚如何通过SVG文件中的id访问特定元素。我使用的是lxml的python库来解析这个文件,但是它总是空的。下面是我用来访问元素的python脚本:#!/usr/bin/env python

from lxml import etree

XHTML_NAMESPACE = "http://www.w3.org/2000/svg"

XHTML = "{%s}" % XHTML_NAMESPACE

NSMAP = {None : XHTML_NAMESPACE}

root = etree.parse("temp.svg")

textid = "text1274"

path = ".//text[@id='" + textid + "']/title"

name = root.findtext(path=path, namespaces=NSMAP)

print name

结果始终是空字符串(“None”),但没有错误。它相信它找到了我想要的,但我想要的是元素文本(应该是“Wei,771-661BCE”)。以下是指控的SVG文件:

^{pr2}$

我发现可以通过删除以“xmlns=…”开头的第八行来消除错误(这是名称空间声明)。但是,由于我获得这个文件的地方的性质,我不能永久删除这一行(可能也不应该)。有没有什么方法(比如正确地指定名称空间)可以在根本不需要编辑XML的情况下获得预期的输出?在

多谢了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值