Найти динамический номер длины из строки, используя XSLT - PullRequest
1 голос
/ 11 марта 2019

У меня есть входной XML, как показано ниже

<?xml version = "1.0" encoding = "UTF-8"?>
  <root>
    <param>:22:/ABC/GID:50749612002 BOOK USER REF: 12311111112222 XYZ: DEF BK ID:3333 3333 JKL:MNN - VZXVXHFHF DETA ABC:DEF ORDERID:989796123456789.GKLT C:0006789 FASDFSF.FYRTY 53546475</param>
  </root>

Нужна помощь для извлечения ORDERID с помощью XSLT.

1 Ответ

0 голосов
/ 11 марта 2019

Рассмотрите возможность извлечения значения узла в переменную $param:

<xsl:variable name="param">
    <xsl:value-of select="/root/param"/>
</xsl:variable>

Теперь вы можете использовать начиная с XSLT 2.0 функцию replace, чтобы получить число:

<xsl:value-of select="replace($param, '.*?ORDERID:(\d+)\.\w{4} .*', '$1')"/>

Регулярное выражение .*?ORDERID:(\d+)\.\w{4} .* демонстрируется в Регулярное выражение 101 .

...