我正在尝试创建一个转换,输出将是文本,但也包括原始的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中的输出设置为’text’,则不包含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 <> 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。