Ваш пример сбивает с толку. Если у вас есть ввод XML, например:
<input Inputxml="<order><Line PPlineNO="1">Bingo</Line></order>"/>
, где атрибут Inputxml
содержит экранированный XML:
<order><Line PPlineNO="1">Bingo</Line></order>
, вы можете использовать:
<xsl:template match="input">
<result>
<xsl:value-of select="substring-before(substring-after(@Inputxml, 'PPlineNO="1">'), '</Line>')" />
</result>
</xsl:template>
чтобы получить:
<result>Bingo</result>
Обратите внимание, что это не хороший способ разбора XML (или, скорее, того, что раньше было XML). Было бы намного разумнее сначала удалить его, а затем проанализировать как XML. В XSLT 3.0 вы можете использовать для этого функцию parse-xml()
. В XSLT 1.0 / 2.0 вы можете:
<xsl:value-of select="@Inputxml" disable-output-escaping="yes"/>
сохранить результат в файл и обработать полученный файл, используя другую таблицу стилей XSLT.