【问题标题】:How to make a single quote attribute value in the output xml如何在输出xml中制作单引号属性值
【发布时间】:2017-05-24 09:03:22
【问题描述】:

当我在转换下面的 xml 文件时,它在输出中转换为双引号:

我的输入 XML:

<p outputclass="Center">Type</p>

XSL 我用作:

   <xsl:template match="p[@outputclass = 'Center']">
      <div class='center'><p>
         <xsl:apply-templates/>
      </p></div>
   </xsl:template>

我得到的输出为:

<div class="center"><p>Type</p></div>

但我需要单引号中的输出

<div class='center'><p>Type</p></div>

在输入中我用单引号给出,但是在转换时它变成了双引号。由于双引号,错误正在发生 Json 转换。谁能告诉我如何获得单引号,否则我们是否需要更改可能是必要的。我正在使用 XSLT 2.0 和 saxon-PE 9.6.0.7。

请给我一些建议

【问题讨论】:

标签: json xml xslt xslt-2.0 saxon


【解决方案1】:

我不知道有任何 XML 序列化器可以让您控制是使用单引号还是双引号作为属性分隔符。撒克逊人当然不会。如果有一个应用程序使用 XML 并需要一个或另一个,那么该应用程序存在严重错误,最好避免使用。

【讨论】:

  • 感谢您抽出宝贵时间@MichealKay。它不是此转换中的问题。当我将转换后的 XML 转换为 Json 时,由于双引号,Json 文件没有得到验证。这就是问题所在。
  • 如何将 XML 转换为 JSON?
  • 如果您在 JSON 字符串中嵌入词法 XML(或其他任何内容),则需要将双引号字符转义为 \"
  • 我决定在下一个 Saxon 版本中添加一个序列化选项 saxon:single-quotes="yes"。
  • 谢谢@Michael Kay
猜你喜欢
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
  • 2013-06-07
  • 2012-01-03
相关资源
最近更新 更多