gpt4 book ai didi

使用 xpath 解析包含默认命名空间的子节点的 XML

转载 作者:行者123 更新时间:2023-12-04 17:00:35 29 4
gpt4 key购买 nike

我需要访问包含默认命名空间的子节点
用于访问包含命名空间的根节点 IFX 正在使用

//ns:IFX/ns:BankSvcRs/ns:RqUID

但现在我需要访问 <severity><SPName><CardEmbossNum>
<IFX xmlns="http://www.ifxforum.org/IFX_150">

<BankSvcRs>
<RqUID>124566665222</RqUID>
<com.bac:CardAddRs xmlns:com.bac="http://www.fnf.com/xes/bac">
<Status>
<Severity>Info</Severity>

</Status>
<RqUID>124566665222</RqUID>
<com.fnf:CardId xmlns:com.fnf="http://www.fnf.com/xes">
<CustId>
<SPName>com.fnf.xes.BOSS</SPName>
<CardLogicalData>
<CardEmbossNum/>
<Name>SpiderMAN</Name>
</CardLogicalData>
</CustId>
</com.fnf:CardId>
<com.bac:CardInfo>
<com.bac:CardAssociation/>
</com.bac:CardInfo>
<com.fnf:CardRec xmlns:com.fnf="http://www.fnf.com/xes">
<com.fnf:CardId>
<CustId>
<SPName/>
<CardLogicalData>
<CardEmbossNum>00000000000000000</CardEmbossNum>
</CardLogicalData>
</CustId>
</com.fnf:CardId>
<com.fnf:CardStatus>
<StatusCode>0</StatusCode>
<StatusDesc>Fail</StatusDesc>
</com.fnf:CardStatus>
</com.fnf:CardRec>
</com.bac:CardAddRs>
</BankSvcRs>
</IFX>

最佳答案

您需要在您使用的任何 API 中声明必要的命名空间,然后使用以下内容:

/ns:IFX/ns:BankSvcRs/com.fnf:CardId/ns:Status/ns:Severity

或者你可以做这样的事情:
/ns:IFX/ns:BankSvcRs/*/ns:Status/ns:Severity

或者,如果您真的想:
/ns:IFX/ns:BankSvcRs/*[local-name() = 'CardAddRs']/ns:Status/ns:Severity

虽然就个人而言,我认为使用 local-name()作为正确使用命名空间的一种方式,这不是一个好习惯。

您还没有向我们展示您在何处使用此 XPath 的代码,因此我可以在没有更多信息的情况下提供尽可能多的帮助。

关于使用 xpath 解析包含默认命名空间的子节点的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15264615/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com