gpt4 book ai didi

tsql - XSLT - 如何在文本输出模式下将原始 XML 转化为转换结果

转载 作者:行者123 更新时间:2023-12-04 19:17:44 25 4
gpt4 key购买 nike

我正在尝试创建一个输出将是文本但也包括原始 xml 的转换。只是我得到了应该转换为 SQL 插入的 xml 消息,但是如果出现 SQL 错误,我也想将原始 xml 消息插入到数据库中。

输入是例如:

<message><tag name="foo">dummy</tag></message>

转换的结果应该是:
INSERT INTO table (column) VALUES ('dummy')
IF @@error <> 0
BEGIN
INSERT INTO errMsgLog (message) VALUES ('<message><tag name="foo">dummy</tag></message>')
END

问题是,如果我将 XSLT 中的输出设置为“文本”,则不包含 xml 标记(仅包含值)。那么是否有任何混合输出模式或属性覆盖?

谢谢你的帮助。

最佳答案

在接近这个解决方案之前(不知道通过 XSLT 是否可以找到更好的解决方案),还要考虑您将遇到更复杂的输入和输出的问题。

即使纯粹主义者会拒绝这个答案(以及这个问题),您也可以使用“xml”输出方法来做一个(非常丑陋的)诡计:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
<xsl:text disable-output-escaping="yes">INSERT INTO table (column) VALUES ('dummy')
IF @@error &lt;> 0
BEGIN
INSERT INTO errMsgLog (message) VALUES ('</xsl:text>
<xsl:copy-of select="."/><xsl:text>')
END</xsl:text>
</xsl:template>

</xsl:stylesheet>

输出:
INSERT INTO table (column) VALUES ('dummy')
IF @@error <> 0
BEGIN
INSERT INTO errMsgLog (message) VALUES ('<message><tag name="foo">dummy</tag></message>')
END

关于tsql - XSLT - 如何在文本输出模式下将原始 XML 转化为转换结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com