哪些是xsl转换中重音字符最安全的方法?
我的老板告诉我要确定,因为角色可能会得到一个奇怪的输出,比如'solución'输出'soluci & 3n'。哪些是xsl转换中重音字符最安全的方法?
有些话需要被重音,这是在XSL的原代码,它是如此简单:
<table:table-cell table:style-name="TablaIkus.FXI" office:value-type="string">
<text:p text:style-name="PIntBodyLeft">Fecha inicio cómputo intereses</text:p>
</table:table-cell>
的事情是,使输出正确地显示在最后的.odt文件中的一句话:
但是,万一...... 有逃脱的口音,以避免一个奇怪的输出的功能?
但是,以防万一...... 有一个函数来避免重音以避免奇怪的输出?
XML需要基本上所有Unicode作为其字符集。重音字符不需要特殊处理,无论是在XML中,还是在XSLT中。因此,不,没有函数可以转义重音符号或重音符号,并且不需要。
但是,您的问题隐藏了一个误解。正如我在评论中所写的,XML提供了多种语义上等同的方法来表示同一个字符。这适用于XML输入文档,样式表文档以及输出方法“xml”的结果文档。例如,如果文档编码支持它,那么字符ó
(“Unicode的名称为LATIN SMALL LETTER O WITH ACUTE”)可以通过它在文档的字符编码中的表示直接传达,但也可以等效地表示作为两种形式的XML字符实体:ó
或ó
。
如果XSLT处理器输出的XML包含某些字符的不同表示形式,而不是输入中使用的字符,则不会提交任何错误。在某些情况下,它实际上可能需要这样做。如果它确实进行了这种转换,那么它不会以任何方式改变文档的含义。这听起来像你想要避免这种转换,但这不是你应该担心的问题。
但是,确保您的输入和样式表文档在他们的XML声明中准确地声明了他们的字符编码。例如,
<?xml version="1.1" encoding="UTF-8"?>
如果您的文档不承担XML声明,或者如果它没有声明编码,然后可以肯定,他们正在使用XML的默认编码,UTF-8编码。歪曲XML工具的编码确实是文档中的字符可能被扰乱的一种方式。
你说得对,重音字符仍然可能出错。我们仍然在基于网络的表单中使用重音字符,并且在电子邮件中使用重音字符。如果所有配置都正确,这一切都能正常工作,但是你并不总是能够控制所有事情,并且有很多机会出现问题。像ó
数字字符引用是反对不正确的转码一对一防守,但他们有他们不通过XSLT转换(或许多其他的XML处理操作)生存的问题。在XSLT代码(和在Javascript这个问题)我已经采取了使用结构,如
<xsl:variable name="nbsp" select="codepoints-to-string(160)"/>
我写这篇文章的评论,试图得到更新,并出现在最新的问题,“我不知道如果这是要工作' – jvillegas
你不清楚你在问什么。XML提供了多个在每个字符语义等价的表示。你问关于在源文档中使用哪种表示?关于在样式表文档中使用哪些表示?可能关于如何影响哪些表现形式出现在结果文件中? –
嗨,谢谢你的回应。好吧,我不是英国本地人,我试图以最好的方式提出问题,我谈论所有的口音áàéèíìóòúù,与之相同这些重音字符以大写字母显示,并且是在.odt文档中显示输出的最佳方式,以显示完全相同的“áàéèíìóòúù”,避免可能出现的问题。 – jvillegas