我需要访问包含默认命名空间的子节点 用于访问包含命名空间的根节点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>
答案 0 :(得分:2)
您需要在您正在使用的任何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的代码,因此我可以提供尽可能多的帮助而无需更多信息。