использование substring-before - поиск определенной строки, а затем извлечение другой - PullRequest
1 голос
/ 16 апреля 2019

Я новичок в xslt. Я пытаюсь найти длинную строку для значения в моем случае «EMRUPI», и мне нужно предварительно извлечь идентификатор и заполнить другое поле. Я использую функцию "substring-before"

я не могу извлечь значение, он возвращает NULL

Это данные:

PID|1|12345^^^ABCMRN^MRN^|678988^^^DEFMRN^MRN^~111111^^^GHIMRN^MRN^~7777777^^^EMRUPI^CMRN^||

Я в основном хочу найти в сегменте PID3 (PID3 - данные после 3-го канала «|») текст «EMRUPI» и получить идентификатор перед этим «7777777». Я хочу сохранить его в переменной, например, $ EMRUPI, и поместить в сегмент PID4, что я и пытаюсь сделать здесь:

вот сценарий, который я написал:

<PID>
    <F3>
                <xsl:variable name="EMRUPI" select="substring-before(name(),'EMRUPI')" />
                <xsl:value-of select="substring-before(name(),'EMRUPI')" />
                <L1.1.1><xsl:value-of select="$EMRUPI"/></L1.1.1>

    </F3>

    <F4><L1.1.1><xsl:value-of select="$EMRUPI"/></L1.1.1></F4>
</PID>

...