这个XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match=
"br[not(@*|*|comment()|processing-instruction())
and normalize-space()=''
]"/>
</xsl:stylesheet>
应用于此形成良好的,有效的XML:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<b>trying</b> to remove <br/> tags only <br/> and not <b>bold tags</b>
</list>
给出了这样的结果:
<list>
<b>trying</b> to remove tags only and not <b>bold tags</b>
</list>
也可参考Dimitre的解决方案在这里: Removing empty tags from XML via XSLT
最好的问候, 彼得
XSLT只能适用于(有效)XML,以及您的片段无效的XML,因为'
'没有关闭。你应该考虑一些HTML解析器的工作。 – MiMo
我没有解析XML的问题。这不是问题。该字符串位于有效标签内。问题是删除返回的XML中的标签,这与例子类似。 – user900718
XSLT不是处理字符串的语言 - 如果要将HTML作为字符串处理使用正则表达式,但通常不是推荐的 - 最好是解析HTML并处理解析的结果。 – MiMo