所有 我在Python语言中使用了XPath库。但我无法在我的xml文件中使用冒号获取某些属性。
xml文件内容:
xmlns:rtr="http://www.reuters.com/ns/2003/08/content"
<packageItem conformance="power" guid="2013-07-17 15:53:21" standard="NewsML-G2" standardversion="2.14" version="1" xml:lang="en">
<itemClass qcode="icls:composite" rtr:msgType="S"/>
这是我写的两种方法。
def getxmlVal(self, expr):
data = xpath.findvalue(expr, self.doc)
return data
def getValnamespaces(self, expr, namespace):
context = xpath.XPathContext(default_namespace=namespace)
return context.findvalue(expr, self.doc);
我也尝试过: 方法 getxmlVal
EXPR = “// packageItem / itemMeta / itemClass / * [local-name()='rtr:msgType'和 命名空间URI()= 'http://www.reuters.com/ns/2003/08/content']“;
expr= "//itemMeta/itemClass/*[name()='rtr:msgType']";
方法 getValnamespaces
expr= "//itemMeta/itemClass/*[name()='rtr:msgType']";
namespace = "http://www.reuters.com/ns/2003/08/content";
但我可以None
我的方法有什么问题?
由于
答案 0 :(得分:0)
您需要使用@
来匹配属性,并且在尝试匹配local-name()
时不应指定命名空间:
expr= "//packageItem/itemMeta/itemClass/@*[local-name()='msgType' and namespace-uri()='http://www.reuters.com/ns/2003/08/content']";