我有一系列由Java应用程序输出的文档,它导出了XML,并且未转义HTML标签。例如:
<b>some text</b>
我无法改变这个行为。
然后使用此输出的应用程序必须将所有html标记转义。
<b>some text </b>
我使用以下xslt代码来转义标签,但并不奇怪的是它不能处理嵌套的HTML标签,例如 嵌套 标签,比如这种情况 。
<u><b>A string of html</b></u>
在进行XSLT转换时,我得到了以下结果:
<u>a string of html</u>
where nested <b> and </b> tags get removed altogether.
我正在寻求达成以下目标
<u><b>A string of html</b></u>
我相信通过调整value-of select或模板可以轻松解决这个问题,但我已经尝试并且失败了。
非常感谢你的帮助!
带有嵌入式html标签的示例文档。
<?xml version="1.0" encoding="UTF-8"?>
<Main>
<Text><u><b>A string of html</b></u></Text>
</Main>
这是XSLT。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no" encoding="UTF-8"/>
<xsl:strip-space elements="*" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Text/*">
<xsl:value-of select="concat('<',name(),'>',.,'</',name(),'>')" />
</xsl:template>
</xsl:stylesheet>
这将产生
<?xml version="1.0" encoding="UTF-8"?>
<Main>
<Text><u>A string of html</u></Text>
</Main>
如您所见,内部粗体标签已被删除。
有人能帮忙调整XSLT吗?
谢谢 :-)
<a href="http://example.com">link</a>
)? - Ian Roberts