@xml:id作为python [xml-namespace]中的xPath谓词

时间:2018-06-27 13:13:24

标签: python xml xpath xml-namespaces

我需要分配一个变量:

title =[(meiHead.find('.//mei:title[@xml:lang="EN"]', ns).text) )]

但是我得到一个错误,谓词的语法

mei:title[@xml:lang="EN"]'

无效。这是BCS。将“ lang”分配给“ xml”命名空间。

我尝试过:

  1. 声明名称空间:

    ns = {'mei':'http://www.music-encoding.org/ns/mei','xml':'http://www.w3.org/XML/1998/namespace'}

  2. 在不同的语法变体中明确使用它:

    title = mei:title [@ {http://www.w3.org/XML/1998/namespace} lang =“ EN”]

  3. 把它弄出来:

    mei:title [@ * [local-name()=“ lang”和。 =“ EN”]和@ type =“ unit”]

有一篇文章恰好描述了此问题,但仍不清楚符合名称空间的工具是什么,或者您如何使用 convinience常量

  

还要注意,属性 xml:lang 被显示为绑定到名称空间http://www.w3.org/XML/1998/namespace,尽管没有这样的名称。   命名空间已声明。这是因为这是一个特殊的名称空间   隐式声明为绑定到前缀xml;一定是   由符合名称空间的工具处理。还有一个   Python DOM接口中的便利常量,用于此特殊功能   命名空间xml.dom.XML_NAMESPACE。

发件人:https://www.xml.com/pub/a/2003/03/10/python.html

0 个答案:

没有答案