Input
<p>
<mml:mrow>
<mml:mi>a</mml:mi>
<mmml:mo> < </mmml:mo>
<mmml:mo> > </mmml:mo>
</mml:mrow>
</p>
Output
<p>
<mml:mrow>
<mml:mi>a</mml:mi>
<mmml:mo> < </mmml:mo>
<mmml:mo> > </mmml:mo>
</mml:mrow>
</p>
我希望你能够理解这个场景。我需要一个xslt代码来执行上面的转换。
答案 0 :(得分:1)
您可以尝试使用HTML解析器解析该内容:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:d="data:,dpc" exclude-result-prefixes="d">
<xsl:import href="https://raw.githubusercontent.com/davidcarlisle/web-xslt/master/htmlparse/htmlparse.xsl"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="p">
<xsl:copy>
<xsl:copy-of select="d:htmlparse(., '', false())"/>
</xsl:copy>
</xsl:template>
</xsl:transform>
http://xsltransform.net/6pS1zDA/1这样做,结果是
<p>
<mrow>
<mi>a</mi>
<mo> < </mo>
<mo> > </mo>
</mrow>
</p>
需要XSLT 2.0或3.0处理器,因为在XSLT中实现的HTML解析器使用XSLT 2.0。