如何使用 xpath 在 xml 中查找数值数据类型信息



下面是代码,我只想在其他事务集中定位 8989 而不是 ABCD,通常我们希望得到项目的混合,但我们想定位到只包含数字数据的树和节点。

尝试在 xpath 中搜索数字函数,但似乎没有一个适合我的情况,通常只有可用的转换函数。我试过的事情:-

"number(.//dtv:IP[dtv:IPCode='LOGICLABEL']/dtv:IPValue)"

在这里,即使这是数字,我也将所有内容都作为 NaN(不是数字(。

<dtv:IP>
 <dtv:IPCode><![CDATA[LOGICLABEL]]></dtv:IPCode>
 <dtv:IPType><![CDATA[STRING]]></dtv:IPType>
 <dtv:IPValue><![CDATA[8989]]></dtv:IPValue>
</dtv:IP>

<dtv:IP>
 <dtv:IPCode><![CDATA[LOGICLABEL]]></dtv:IPCode>
 <dtv:IPType><![CDATA[STRING]]></dtv:IPType>
 <dtv:IPValue><![CDATA[ABCD]]></dtv:IPValue>
</dtv:IP>

在上面的代码中,我只想获取数值,即:8989,但我的 xpath 不应该在 ABCD 上找到。在Xpath中可能吗?

/dtv:IP/dtv:IPValue[string(number(.)) != "NaN"]
"number(.//dtv:IP[dtv:IPCode='LOGICLABEL']/dtv:IPValue)"

这工作得很好,当有数字时它正在工作,唯一的问题是我必须用 0 替换我上面描述的 NaN。

到目前为止,它能够使用翻译功能获得它。

translate('NaN',number(/dtv:IP[dtv:IPCode='LOGICLABEL']/dtv:IPValue),'0')

试图解决的初步分析是错误的,我为此道歉。

相关内容

最新更新