如何在不解析替换值的情况下用尖括号替换文本?

How can I replace text with angle bracket without parsing the replace value?

我有这个:

replace("Both cruciate ligaments are well visualized and are intact.", 
        ".", 
        ".<br>")

但我不想输出转义的尖括号,而是输出实际的括号。当我 运行 我得到的代码时:

Both cruciate ligaments are well visualized and are intact.<br>

我要:

Both cruciate ligaments are well visualized and are intact.<br>

我怎样才能做到这一点?我无法直接使用尖括号作为替换值,因为出现错误。


编辑

我有一个样式表,它接收一个文本文件,该文件被注入到 HTML 文件中(来自样式表)。我使用 XML(临床文档)和文本文件并将它们与样式表合并在一起。例如我有:

RADIOLOGY REPORT
NAME: JOHN, DOE
DoB: 1982-02-25

Injected text goes here

文本必须在回车 return 上换行,并且必须在单词级别换行。我确实设法做到了后者,但我没有找到换行符的方法。我想在文件中找到 'LF' 替换为
以便在呈现页面后我可以看到换行符。

如果你想输出节点而不是简单的字符串,你需要使用xsl:analyze-string。这是一个例子:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html"/>

<xsl:template match="text">
  <xsl:analyze-string select="." regex="\.">
    <xsl:matching-substring>
      <xsl:value-of select="."/><br/>
    </xsl:matching-substring>
    <xsl:non-matching-substring>
      <xsl:value-of select="."/>
    </xsl:non-matching-substring>
  </xsl:analyze-string>
</xsl:template>

</xsl:stylesheet>

输入为

<text>Both cruciate ligaments are well visualized and are intact.</text>

转换结果为

Both cruciate ligaments are well visualized and are intact.<br>

Martin Honnen 的回答是一个非常好的方法。

使用简单的模板查找有问题的文本是另一种方法:

<xsl:variable name="magic-string"
  select='"Both cruciate ligaments are well visualized and are intact."'/>
...
<xsl:template match="text()
  [contains(.,$magic-string)]">
  <xsl:value-of select="substring-before(.,$magic-string)"/>
  <xsl:value-of select="$magic-string"/>
  <br/>      
  <xsl:value-of select="substring-after(.,$magic-string)"/>
</xsl:template>

在任一情况下,使用 HTML 输出方法将空 br 元素序列化为 <br> 而不是 <br/>.

注意:我在这里假设您想要在这个特定句子之后添加一个 br,而不是您想要在每次出现句号之后添加一个,这就是 Martin Honnen 似乎解释问题的方式。