Как получить только последние 4 символа в строке, используя XPath Query - PullRequest
0 голосов
/ 17 июня 2019

Я использую xpath для извлечения различных точек данных из файла в формате XML.

Есть ситуация, когда я хочу извлечь только последние 4 цифры значения, но не могу понять, как.

Я тестировал различные методы подстрок, найденные на этом сайте, но ни один из них не работает.

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

Ответы [ 3 ]

0 голосов
/ 17 июня 2019

Есть ситуация, когда я хочу извлечь только последние 4 цифры значения, но не могу понять, как.

Чтобы извлечь последние 4 цифры значения,Например, TaxpayerIdentifierValue, вы можете использовать следующее выражение XPath-1.0:

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

Его вывод:

6789

0 голосов
/ 17 июня 2019

Вот простой xpath.

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

Вот скриншот вывода: enter image description here

Вы также можете использоватьниже xpath.

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

enter image description here

0 голосов
/ 17 июня 2019

Если текущим узлом является TaxpayerIdentifierValue, просто вызовите substring и используйте string-length для вычисления начальной позиции подстроки:

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

Что, начиная с корня, делает его

substring(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue,
          string-length(/TAXPAYER_IDENTIFIERS/TAXPAYER_IDENTIFIER/TaxpayerIdentifierValue) - 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...