我正在使用 xpaths 从 XML 格式的文件中检索各种数据点。
有一种情况,我只想提取一个值的最后 4 位数字,但我不知道如何提取。
我测试了该网站上找到的各种子字符串方法,但没有一个起作用。
<TAXPAYER_IDENTIFIERS>
<TAXPAYER_IDENTIFIER SequenceNumber="1">
<TaxpayerIdentifierType>SocialSecurityNumber</TaxpayerIdentifierType>
<TaxpayerIdentifierValue>123456789</TaxpayerIdentifierValue>
</TAXPAYER_IDENTIFIER>
</TAXPAYER_IDENTIFIERS>
有一种情况,我只想提取一个值的最后 4 位数字,但我不知道如何提取。
检索值的最后 4 位数字,例如
TaxpayerIdentifierValue
,您可以使用以下XPath-1.0表达式:
substring(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue, string-length(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue) - 4 + 1, 4)
它的输出是:
6789
如果当前节点是TaxpayerIdentifierValue,只需调用
substring
并使用string-length
计算子字符串的起始位置:
substring(., string-length(.) - 3)
从根源开始,做到了
substring(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue,
string-length(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue) - 3)
有人可以解释一下 string-lenght()-3 是如何工作的吗?我无法弄清楚。