gpt4 book ai didi

xml - 带有命名空间的路径定义

转载 作者:行者123 更新时间:2023-12-03 16:33:29 25 4
gpt4 key购买 nike

我在使用此文档的 xPath 时遇到问题。
当元素 C21201 的部件号为 1111111 时,我想获取元素 C50603。
如果我删除命名空间,它会起作用。

这就是我到目前为止所拥有的,但没有命名空间。

   /*[local-name()='Root']
/*[local-name()='InputMessagePart_1']
/*[local-name()='EFACT_D97A_ORDERS']
/*[local-name()='LINLoop1'][C212/C21201='111111']
/*[local-name()='RFFLoop3']
/*[local-name()='RFF_6']
/*[local-name()='C506_6']
/*[local-name()='C50603']

ns3 是 :=' http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006 ']
    <ns3:LINLoop1>
<ns3:LIN>
<LIN01>2</LIN01>
<ns3:C212>
<C21201>22222222</C21201>
<C21202>VP</C21202>
<C21204>91</C21204>
</ns3:C212>
</ns3:LIN>
<ns3:QTY_3>
<ns3:C186_3>
<C18601>21</C18601>
<C18602>1</C18602>
<C18603>PCE</C18603>
</ns3:C186_3>
</ns3:QTY_3>
<ns3:PRILoop1>
<ns3:PRI>
<ns3:C509>
<C50901>AAA</C50901>
<C50902>xxxxx</C50902>
<C50903>CT</C50903>
<C50905>1</C50905>
<C50906>PCE</C50906>
</ns3:C509>
</ns3:PRI>
</ns3:PRILoop1>
<ns3:RFFLoop3>
<ns3:RFF_6>
<ns3:C506_6>
<C50601>LI</C50601>
<C50603>00002</C50603>
</ns3:C506_6>
</ns3:RFF_6>
</ns3:RFFLoop3>
<ns3:SCCLoop2>
<ns3:SCC_2>
<SCC01>1</SCC01>
</ns3:SCC_2>
<ns3:QTYLoop4>
<ns3:QTY_7>
<ns3:C186_7>
<C18601>21</C18601>
<C18602>1</C18602>
<C18603>PCE</C18603>
</ns3:C186_7>
</ns3:QTY_7>
<ns3:DTM_25>
<ns3:C507_25>
<C50701>2</C50701>
<C50702>xxxx</C50702>
<C50703>102</C50703>
</ns3:C507_25>
</ns3:DTM_25>
</ns3:QTYLoop4>
</ns3:SCCLoop2>
</ns3:LINLoop1>

最佳答案

乍一看,问题似乎出在这个谓词中

[C212/C21201='111111']
C212元素有 ns3前缀,所以你需要考虑它的命名空间,它也是 LINLoop1 的另一个级别。里面 ns3:LIN
[*[local-name() = 'LIN']/*[local-name() = 'C212']/C21201='111111']

(如果 C21201 元素不在命名空间中,这将起作用。我无法从您发布的部分 XML 中判断是否是这种情况 - 如果有 xmlns="..." 在树上更高的任何地方,那么你'还需要在该路径步骤上使用相同的 local-name() 技巧。)

关于xml - 带有命名空间的路径定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762558/

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