我尝试使用密钥转换系统来国际化一个xsl。我有一个主xsl文件,它引用键,并使用所有键(英语或法语)导入另一个xsl。问题:在法语中,我们的单词中有简单的引号。结果:我的最后一个HTML页面没有正确生成
经过一些研究:我试着用&apos代替简单的引语。我尝试用双引号('')代替简单引号(')
主XSL文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:import href="translation_fr.xsl"/>
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
(other contents ...)
<table class="report-table">
<thead>
<tr>
<th class="report-sub-title" colspan="4"><xsl:value-of select="$lang.mainData"/></th>
</tr>
</thead>
(other contents ...)I18 FR XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:variable name="lang.mainData" select="'test d'un apostrophe'"/>
</xsl:stylesheet>当我在xsl:value-of和select中使用简单引号时,不会生成我的HTML。我希望:'test d‘’un撇号‘字符串显示在我的页面中。
发布于 2019-08-07 10:26:23
如果您确实使用了XSLT 2处理器,并且可以在XPath属性的表达式级别使用select 2,那么您可以使用select="'test d''un apostrophe'"来解决它(请参阅字符串文本规则的https://www.w3.org/TR/xpath20/#prod-xpath-StringLiteral ),但它似乎更容易使用。
<xsl:variable name="lang.mainData" as="xs:string">test d'un apostrophe</xsl:variable>(确保样式表随后声明xmlns:xs="http://www.w3.org/2001/XMLSchema")。
发布于 2019-08-07 13:07:28
在托管语言中,这是关于分隔符的常见情况:在本例中,XSLT作为XML词汇表,而XPath在某些属性中作为字符串。它是如此普遍,以至于规格说明预见到了这一点。
XPath表达式经常出现在XML属性中。本节中指定的语法适用于XML1.0规范化后的属性值。因此,例如,如果语法使用字符
<,则这不能以<的形式出现在XML中,而必须根据XML1.0规则引用,例如,输入它为<。在表达式中,文字字符串由单引号或双引号分隔,而单引号或双引号也用于分隔XML属性。为了避免XML处理器将表达式中的引号解释为终止属性值,可以将引号输入为字符引用("或')。或者,如果XML属性用双引号分隔,则表达式可以使用单引号,反之亦然。
在该引号之后,XSLT指令如下所示:
<xsl:variable name="lang.mainData" select=""test d'un apostrophe""/>或
<xsl:variable name="lang.mainData" select='"test d'un apostrophe"'/>https://stackoverflow.com/questions/57391028
复制相似问题