如何在不解析替换值的情况下用尖括号替换文本?
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 似乎解释问题的方式。
我有这个:
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 似乎解释问题的方式。