【发布时间】:2013-06-17 16:01:03
【问题描述】:
我得到了一个 xsl 文件,它将一个 xml 文件转换为另一个具有不同 xml 格式的文件。 xsl 文件以:
开头 ?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
然后输出开始于:
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
以及将要转换的所有元素的其余部分,例如很多行:
<xsl:element name="tns:corporateName" >
<xsl:value-of select="@CorpOrgname"/>
</xsl:element>
一切看起来都不错,除了生成的 xml 文件在第 1 行有这个标签:
<?xml version="1.0" encoding="Windows-1252"?
我不明白这个编码是从哪里来的。当我在本地调试文件时,结果是 utf-8,但当这个应用程序使用它时不是。
是否有强制它更多设置为 utf-8 的方法?因为这是一种需求。接收系统是一些 Unix 系统。
我有一个原始文件的例子。那个我将转换,它是 utf-8 格式(无论如何,notepad++ 所说的)。
我在这里遗漏了什么吗,除了语法 encoding="utf-8" 之外,还有其他方法可以设置结果:s 编码吗?
【问题讨论】:
-
如何运行转换,您使用哪个 XSLT 处理器?
-
嗯,最终用户使用的应用程序是旧技术(Centura),并且调用了一个 .net com-visible 类(regasm),它将原始 xml 文件作为调用中的参数,作为它的路径。然后 .net-app 正在使用这些信息,只是用 xsl 转换它,并保存它。
标签: xml xslt xml-parsing