xml - XPath 不返回值的问题

标签 xml xpath xquery

我对使用 XPath 和 XQuery 还很陌生,我似乎无法弄清楚为什么我无法使用以下 XPath 语句从以下 XML 返回 OrderID:

//OrderID[1]/text()

为什么找不到 OrderID或者比使用这个 XPath 更深入?
//soap:Body

这是 XML:
<soap:Envelope xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <SubmitOnlineSearchResponse xmlns="http://eservices.diligenz.com/">
         <SubmitOnlineSearchResult>
            <return>
               <orderInfo>
                  <OrderID>75124507</OrderID>
               </orderInfo>
            </return>
         </SubmitOnlineSearchResult>
      </SubmitOnlineSearchResponse>
   </soap:Body>
</soap:Envelope>

最佳答案

因为OrderIDhttp://eservices.diligenz.com/命名空间。

如果您可以修改消息,请添加

xmlns:di="http://eservices.diligenz.com/"

soap:Envelope连同其他命名空间声明并将您的 XPath 更改为
//di:OrderID[1]/text()

如果您无法修改消息,请使用宿主环境的工具将命名空间前缀绑定(bind)到命名空间,然后绑定(bind) dihttp://eservices.diligenz.com/为了使上述 XPath 工作。

关于xml - XPath 不返回值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326460/

相关文章:

python - 如何在单个项目中获取scrapy xpath输出

xml - 将每个 XQuery 结果放在一个新行上

python - lxml 中的通配符命名空间

xquery - 在 MarkLogic 函数中删除 "fn:"?

constraints - 如何根据 Marklogic 中的用户输入创建自定义日期范围?

sql - 如何从sql中的ntext(xml格式)列中获取值

android - 使简单的 Accordion 可滚动

php - Mysql连接表数据,需要在1个查询中从两者中拖出数据

xml - 如何通过前缀获取xml文件的命名空间(groovy)

javascript - Selenium-webdriver JS - 如何等到元素可见