【问题标题】:XSLT text output escaping charactersXSLT 文本输出转义字符
【发布时间】:2016-05-13 06:47:37
【问题描述】:

我正在处理一个 XML 文档,输出是文本。 XML 文档可以有<,它以< 出现 如果我什么都不做,它们会在文本输出中显示为<。但我需要他们留下< 我尝试将它们转换为<,但结果就是这样。 我试过disable-output-escaping,但这似乎只适用于xml输出。 如果&> 出现&>,我想这同样适用。但我还没有遇到过。

有什么想法吗?

谢谢,约翰

【问题讨论】:

  • 请添加您的输入、输出和预期输出的示例。
  • @Johan "但这似乎只适用于 xml 输出"。您实际需要使用什么样的输出?请发帖minimal reproducible example(简化的 XML 输入、简化的 XSLT 和预期的输出)
  • 您能否也说一下您使用的是 XSLT 1.0 还是 XSLT 2.0?谢谢!
  • 何不干脆将输出方式改为“xml”(并省略xml声明)?
  • 省略 xml 声明是一个超级技巧!我需要更多地测试它。但它可能会解决我以另一种方式解决的另一个问题。谢谢。

标签: xml xslt


【解决方案1】:

首先:请听 Potane、har07 和 Tim C 在您的问题中提供更多信息。

第二:这可能有助于缩小问题范围:

< 一样将字符串输出并将输出方法设置为文本应该足以得到你想要的。

不过……

它可能取决于您观看输出的程序是否将其转换为<。 尝试使用 Notepad/Notepad++(或任何其他简单的文本编辑器)来查看您的代码。一个简单的文本编辑器按原样显示文件。

【讨论】:

    【解决方案2】:

    使用 XSLT 处理器 1.0 或 2.0,以下 xsl:

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output method="text"/>
      <xsl:template match="/">
        <xsl:text>&amp;lt;</xsl:text>
      </xsl:template>
    </xsl:stylesheet>
    

    结果为@​​987654322@。

    问题可能出在您的输入数据上。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多