我已经搜索过将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>
非常感谢任何回复。
DONO
答案 0 :(得分:1)
当然这是可能的。只需使用身份转换并专门处理<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处理器都支持。