Xml ISO-8859-1的XSLT转换

Xml ISO-8859-1的XSLT转换,xml,xslt,unicode,utf-8,iso-8859-1,Xml,Xslt,Unicode,Utf 8,Iso 8859 1,我们可以用ISO-8859-1 unicode代替UTF-8进行XSLT转换吗 目前,我在使用UTF-8时没有遇到任何问题。 以下代码可以正常工作: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:this="http://this.com" xmlns:wd="urn:com.workday.report/

我们可以用ISO-8859-1 unicode代替UTF-8进行XSLT转换吗

目前,我在使用UTF-8时没有遇到任何问题。 以下代码可以正常工作:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:this="http://this.com"
xmlns:wd="urn:com.workday.report/abcd_services" version="2.0">

    <xsl:output method="text" indent="yes" encoding="UTF-8"/>  

而下面的代码给出了错误:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:this="http://this.com"
xmlns:wd="urn:com.workday.report/INT1204_GE_Capital_Fleet_Services" version="2.0">

    <xsl:output method="text" indent="yes" encoding="ISO-8859-1"/>    

据我所知,每个处理器都支持ISO-8859-1、US-ASCII(强制)、CP1252及其许多变体,因为从处理器的角度来看,这些仅是一个字节编码,除了转换表之外,实现起来非常简单

这就给我们留下了一个错误,不幸的是,你没有表现出来。那么,让我们来看看几个选项:

这相当于:

<!-- won't compile -->
<xsl:value-of select="'Āā'" />

现在在第一种情况下,这将抛出一个错误。例如,我自己的处理器将抛出:

序列化异常:在不允许字符引用的上下文中,无法在所用编码中表示字符“Ā”

并将抛出:

输出字符在此编码中不可用(十进制256)


我的猜测是,上述情况之一适用于您。如果您明确希望使用较小的编码,那么请确保您没有做任何非法的事情。如果这样做没有帮助,请更新您的问题(我建议您无论如何都应该这样做),包括确切的错误、使用的处理器以及如何重现它。

您使用的是哪个XSLT处理器,确切的错误消息是什么?错误是什么?您使用的是哪种XSLT引擎?您可能无法正确处理“文本”方法只是为了检查:如果将“文本”更改为“html”,输出是什么?有时候对html的支持会更好,它可以帮助找出原因。当这个家伙甚至懒得告诉我们他犯了什么错误时,他会给出如此详细的回答@MichaelKay,是的,我被冲昏头脑了,也许在我们今天的xslwg会议之后,我需要做一些琐碎的事情:P。
<xsl:output method="text" indent="yes" encoding="ISO-8859-1"/> 
<!-- not allowed with your text output -->
<xsl:value-of select="'&#x100;&#x101;" />
<!-- won't compile -->
<xsl:value-of select="'Āā'" />