【发布时间】:2012-12-06 23:35:08
【问题描述】:
我希望能够使用 XSLT 将撇号转换为字符串 '。我有以下 XML
<OrgName>King's College</OrgName>
我希望能够输出以下内容:
<OrgName>King's College</OrgName>
我尝试了字符映射,但我认为这不起作用,因为您只能用字符串替换单个字符。
我也尝试了替换功能,但我不确定我可以做些什么来确保完整的字符串实际出现在输出文件中?
<xsl:value-of select='replace(OrgName,"&apos;","&apos;")' />
在我的最终解决方案中,我需要能够替换文本中的所有撇号,而不仅仅是一个节点。
【问题讨论】:
-
">我尝试了字符映射,但我认为这不起作用,因为您只能用字符串替换单个字符。"但是用字符串替换字符正是您想要做的。人物贴图可以做这个,看来你做错了。
-
好问题,+1。有关使用字符映射的完整、简短且简单的解决方案,请参阅我的答案。 :)
-
感谢您的回答,我会检查是否可以让他们工作。我认为字符映射不起作用的原因是我认为撇号将由预定义的实体 ' 表示。即使它在文件中看起来不像那样。对我来说“’”看起来像一个字符串而不是单个字符,所以我认为这是不可能的。也许我不了解实体是如何工作的?我也很困惑为什么我能够在原始 XML 文档中使用文字 ' 而不是实体字符串。
-
请注意,从真正的 XML 使用者的角度来看,这两个 XML 文档是相同的。
-
@Michael Kay - 你是对的,我做错了什么。字符映射正在工作并输出“'”问题是我当时正在重新解析输出并构建一个正在撤消我的工作的 JDOM 文档。现在我只是将输出流从转换中直接写入文件,它工作正常。
标签: xml xslt character-encoding escaping