我在转换XML文件并保存后遇到问题,即我没有收到XML文件的顶部标记<?xml version="1.0" encoding="utf-8"?>
。
以下是我的XSLT文件:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes" encoding="utf-8"
omit-xml-declaration="no" />
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<!-- ... -->
</xsl:stylesheet >
我认为没有此标记会导致错误,例如“在文字内容中找到无效字符。”
任何人都可以帮助我找到解决方案。提前谢谢。
答案 0 :(得分:1)
最有可能的是,产生转换的代码是您需要查看的地方。大多数XSLT库都有一个开关,告诉它是否输出xml声明,因为XSLT可用于输出任何内容。
无效的字符错误很可能与它听起来完全一样。在文本内容中找到了对UTF8无效的字符。
答案 1 :(得分:0)
我今天早上才遇到错误“在文字内容中发现无效字符”。在这种情况下,将XML作为参数传递给SQL存储过程时会发生这种情况。如果您使用的是SQL Server 2000(我是),您需要确保使用NTEXT类型而不是TEXT类型定义存储过程中的参数。
CREATE PROCEDURE Xml_Test
@MyXML NTEXT
AS
....
答案 2 :(得分:-1)
在主元素下有一个嵌套元素(如果没有,则添加)。
确保将omit-xml-declaration属性设置为“ no”。