我搜索了将 XML 节点重命名为字符串的方法。我在 XML 中找到了到节点的字符串示例,但不是相反。
是否可以执行以下操作
<par>
<run> Some text <break/> </run>
</par>
<par>
<run> some text with no carraige return</run>
</par>
至:
<par>
<run> Some text </run>
</par>
非常感谢您的任何回复。
多诺
我搜索了将 XML 节点重命名为字符串的方法。我在 XML 中找到了到节点的字符串示例,但不是相反。
是否可以执行以下操作
<par>
<run> Some text <break/> </run>
</par>
<par>
<run> some text with no carraige return</run>
</par>
至:
<par>
<run> Some text </run>
</par>
非常感谢您的任何回复。
多诺
这当然是可能的。只需使用身份转换并<break>
专门处理即可。不要使用 复制它<xsl:copy>
,而是输出您喜欢的任何文本:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="break">
<xsl:value-of select="' '"/>
</xsl:template>
</xsl:stylesheet>
我想要
你可以使用的文字输出disable-output-escaping
,比如
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="break">
<xsl:value-of select="'&#10;'" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
但是,这是一个可选功能,不保证任何 XSLT 处理器都支持。