python - xml 中的 xpath 命名空间的另一个问题

标签 python xpath lxml xml-namespaces

并且它对架构有效。但我在 python 中使用 xpath 时遇到问题。

<spring:beans xmlns="http://membrane-soa.org/proxies/1/"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
  http://membrane-soa.org/proxies/1/ http://membrane-soa.org/schemas/proxies-1.xsd">

  <fileExchangeStore
    id="myFileExchangeStore"
    dir="./exchanges"
    maxDays="30" />

我写了这部分脚本:

from lxml import etree

a = etree.parse("output.xml")

r=a.xpath('//empty:beans',
          namespaces= { 'empty':"http://membrane-soa.org/proxies/1/",
                        'spring':"http://www.springframework.org/schema/beans",
                        "xsi": "http://www.w3.org/2001/XMLSchema-instance",
                        'schemaLocation':"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://membrane-soa.org/proxies/1/ http://membrane-soa.org/schemas/proxies-1.xsd"})

现在我被这个 xpath 困住了。在这种情况下,“r”是空列表。我已经尝试了 stackoverflow 中的几种解决方案,如何处理 xpath 中的 namespace ,但没有成功。对于如何获取“fileExchangeSotre”内容的任何建议,我将不胜感激。

最佳答案

尝试使用以下代码:

namespaces= { 'empty':"http://membrane-soa.org/proxies/1/",
                    'spring':"http://www.springframework.org/schema/beans",
                    "xsi": "http://www.w3.org/2001/XMLSchema-instance",
                    'schemaLocation':"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://membrane-soa.org/proxies/1/ http://membrane-soa.org/schemas/proxies-1.xsd"}

r = a.xpath('/spring:beans/*[local-name()="fileExchange"]/@*', namespaces=namespaces)

关于python - xml 中的 xpath 命名空间的另一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42924392/

相关文章:

python - lxml objectify 不会调用自定义元素类的构造函数

python - 禁用 lxml 中 '--' 的注释检查

python - 创建返回过滤对象的 django api View

python - 不能 `import smtplib`

xpath - Sublime Text - XPath 插件快捷方式

Python - 'ascii' 编解码器无法在位置解码字节\xbd

Python:检查列表中的数据类型

python - 在 tf.nn.top_k 中加入 torch.topk 的 dim 参数

尝试更新 XML 中的值时出现 javax.xml.xpath.XPathExpressionException

java - org.openqa.selenium.NoSuchElementException : Unable to locate element error