xsl:character-map 来替换特殊字符

2024-06-19

给定一个值为:

 <xml_element>Distrib = SU &amp; Prem &amp;lt;&amp;gt; 0</xml_element>

我需要转弯&amp;lt; or &amp;gt; into &lt; or &gt;因为下游应用程序需要在整个 XML 文档中采用这种格式。我也需要这个来引用和撇号。我正在尝试 XSLT 2.0 中的字符映射。

<xsl:character-map name="specialchar">
    <xsl:output-character character="&apos;" string="&amp;apos;" />
    <xsl:output-character character="&quot;" string="&amp;quot;" />
    <xsl:output-character character="&gt;" string="&amp;gt;" />
</xsl:character-map>

The <xsl:character-map> http://www.w3.org/TR/xslt20/#character-maps指令可用于序列化单个字符到任何字符串。然而,这个问题需要多个字符(一个 & 符号后跟另一个要替换的字符)。

<xsl:character-map>不能用来解决此类问题。

这是这个问题的解决方案,使用 XPath 2.0replace()功能:

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="text()">
   <xsl:value-of select=
    'replace(
        replace(
                replace(., "&amp;lt;", "&lt;"),
                "&amp;gt;",
                "&gt;"
                ),
        "&amp;apos;",
        "&apos;"
        )
    '/>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于以下 XML 文档时:

<xml_element>Distrib = SU &amp; &amp;apos;Prem &amp;lt;&amp;gt; 0</xml_element>

产生了想要的结果:

<xml_element>Distrib = SU &amp; 'Prem &lt;&gt; 0</xml_element>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xsl:character-map 来替换特殊字符 的相关文章

  • Xml、xsl Javascript 排序

    我正在寻找一种使用 javascript 对 xml 数据进行排序的方法 并希望最终过滤掉数据 我知道这一切都可以在 xsl 文件中实现 但我想在客户端进行 我已经搜索了多个使用 javascript 进行排序的地方 但其中大部分要么太特定
  • eXist - 加载 XSLT 集合() - URIResolver 抛出异常

    环境 eXist db 4 2 1 XQuery 3 1 XSLT 2 0 在 eXist db 中 我正在加载一个 XSLT 文件 其中包含对 eXist 中集合的引用 以便使用密钥对在那里找到的文档执行搜索 此引用似乎引发了撒克逊人的错
  • 如何在 XSLT 中应用字母数字排序

    根据以下 XML 在 XSL 中实现字母数字排序的最佳方法是什么 Edit 澄清一下 下面的 XML 只是一个简单的示例 真正的 XML 将包含更多的变体值 使用将标签文本拆分为文本和数字部分substring before and sub
  • XSLT 用逗号 (,) 连接值

    我需要循环遍历xml文档中的所有节点 并在值后面附加逗号 最后 在最后一个元素之后我不应该有逗号 有谁能够帮助我 感谢您 拉马纳 库马尔 你可以这样做
  • 如何使用 saxon 将文档类型参数传递给 xslt?

    对于发送原子数据类型将使用类似 transformer SetParameter new QName customXml new XdmAtomicValue true 如何将 XML Node 作为参数从 C 传递给 XSLT 你能帮我么
  • XSLT 根据元素值删除重复节点

    我是 XSLT 的新手 你能帮助我使用 xslt 来实现以下输出吗 在我的输入 xml 中有重复的节点 我必须根据元素 CustAccId 值删除不应重复的节点 输入xml
  • xslt 展平 DocBook para 元素中的子元素

    我正在将一些生成的 DocBook xml 来自 Doxygen 转换为我公司的 xml 这实际上是 DocBook 的子集 有一个类似如下的 para 元素
  • XSLT:CSV(或平面文件或纯文本)到 XML

    我正在尝试使用 XSLT 将纯文本文件转换为 XML 文件 我从 CSV 文件开始 因为这是一种众所周知的文件格式 我可以开始在 Google 上搜索示例 我偶然发现了这一点 http ajwelch blogspot com 2007 0
  • 在c中使用xslt创建xml文件

    我有 5 个不同的键 值对 并且我知道我的 xml 文件应该是什么样子 我怎样才能用它创建一个 xml 文件 1 我总是可以做 printf 不太好 2 我可以使用 xslt 样式表 xsl 文件 来执行此操作吗 而且 我还希望能够进行我刚
  • 将 XSL-FO 转换为 HTML

    我有一组用于 PDF 生成的 XSL FO 文档 我还需要将相同的输出数据 PDF 格式 导出为 HTML 文件 此外 我需要 HTML 具有与 PDF 类似的样式 有没有办法使用 C 将 XSL FO 转换为 XHTML NOTE 我知道
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 带有嵌套表的 XSLT 中的数据对齐问题

    我正在通过 FoundationPHP 使用 XSLT 和嵌套表生成 Word 文档 我想要的结果是 Table 1 Table 2 Image 1 Image 2 Label 1 Label 2 Data 1 Data 2 Table 3
  • 加载外部 XSLT 时发生异常

    我有大量来自第三方的 XSLT 我需要用它来转换一些数据 如果我使用 xsltproc 它工作正常并按预期输出数据 我有以下 C 代码来尝试在进程中使用它 sXML 是 XML 的集合 oJob ContentTemplate 是 XSLT
  • 如何将 xmlns:* 属性与 XSLT 匹配?

    我怎样才能匹配xmlns XSLT 1 0 的属性 我尝试使用 RDF 文档
  • XSL 和命名空间

    这可能是一个非常简单的问题 但我似乎无法理解这个问题 并且我正在抓狂 我有以下 XML
  • 是否可以在 XSLT 中使用 sprintf() 函数?

    我想做一些类似 Hello s 的事情 并将 World 放在另一个变量中 当然 我可以使用字符串替换来完成这个简单的情况 但如果可能的话 我想要所有 sprintf 功能 例如参数重新排序 这对我自己来说会非常复杂 Hello World
  • 用 xslt 的字符串替换字符串

    我想用另一个字符串替换一个字符串 我找到了一个例子 可以做到这一点 但似乎不起作用 这是样本数据
  • 使用 Javascript/JQuery 进行 XML/XSL 转换

    谁能告诉我是否有一种方法可以在客户端使用 Javascript 或 JQuery 进行 XML XSLT 转换 这种方法适用于所有主要浏览器 Chrome Safari Firefox 和 IE 谢谢 我应该从一开始就声明我编写了这个脚本
  • xslt-1.0 迭代固定值列表

    我需要根据输入生成固定数量语言的 XML 结构 该输入可能包含也可能不包含每种语言的信息 如果信息丢失 我需要生成空元素 问题是 我需要在输出结构中的许多地方迭代语言 最简单的方法是使用类似的东西
  • 如何设置 Apache FOP 中的默认语言

    我正在使用 Apache FOP 2 1 生成 PDF 文件 为此 我尝试将默认语言设置为英语 这应该在通过 Adob e Reader 的选项 文件 属性 高级 阅读选项 创建 PDF 后进行验证 该值当前为空 我尝试过设置xml lan

随机推荐