如何使用XPath查询仅检索字符串中的最后4个字符

时间:2019-06-17 15:45:15

标签: xml xpath

我正在使用xpaths从XML格式的文件中检索各种数据点。

在某些情况下,我只想提取值的后4位,但是我不知道该怎么做。

我已经测试了该站点上发现的各种子字符串方法,但是没有用。

<TAXPAYER_IDENTIFIERS>
     <TAXPAYER_IDENTIFIER SequenceNumber="1">
         <TaxpayerIdentifierType>SocialSecurityNumber</TaxpayerIdentifierType>
         <TaxpayerIdentifierValue>123456789</TaxpayerIdentifierValue>
     </TAXPAYER_IDENTIFIER>
</TAXPAYER_IDENTIFIERS>

3 个答案:

答案 0 :(得分:0)

如果当前节点为TaxpayerIdentifierValue,则只需调用substring并使用string-length来计算子字符串的起始位置:

substring(., string-length(.) - 3)

从根开始,就做到了

substring(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue,
          string-length(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue) - 3)

答案 1 :(得分:0)

  

在某些情况下,我只想提取值的后4位,但是我不知道该怎么做。

检索值的后4位,例如TaxpayerIdentifierValue,您可以使用以下XPath-1.0表达式:

substring(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue, string-length(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue) - 4 + 1, 4)

其输出是:

  

6789

答案 2 :(得分:0)

这是简单的xpath。

//TaxpayerIdentifierValue/substring(., string-length(.) - 3)

以下是输出屏幕截图: enter image description here

您还可以使用下面的xpath。

//TaxpayerIdentifierValue/substring(text(), string-length(text()) - 3)

enter image description here