У меня есть следующий XSLT код:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="POL">
<sql:SQLXML>
<sql:Execute as="Test" into="Test">
<sql:SQL>
select trans_type, trans_datetime, replace(convert(varchar, trans_datetime, 114), ':', '_') as trans_time, application_data from Acord_Transaction where transaction_id=
<xsl:value-of select="TRANSACTIONID" />
</sql:SQL>
</sql:Execute>
<xsl:if test="string-length(APPLICATIONDATA/parameters/noteid) > 0">
<sql:Execute as="newnote" into="newnotes">
<sql:SQL>
select * from notes where note_id=
<xsl:value-of select="APPLICATIONDATA/parameters/noteid" />
AND added_date='
<xsl:value-of select="APPLICATIONDATA/parameters/addeddate" />
'
</sql:SQL>
</sql:Execute>
</xsl:if>
</xsl:template>
Проблема:
APPLICATIONDATA
isстроковое поле, которое инициализируется из базы данных и содержит код XML.После завершения sql:execute
выходные данные <
и >
заменяются на <
и >
.
Мне нужен шаблон, который будет применен после sql:execute
, так что результатвыполнения становится действительным XML-кодом.Затем я могу запустить XPath с xsl:if
на нем.