输入是 -
<data>
<container>
<strong>Code Development</strong>
<br/>
here to support
<ul class="nested">
<li>list 1</li>
<li>list 2</li>
<li>list 3</li>
<li>list 4</li>
</ul>
something here
<strong>this is strong</strong>
</container>
</data>
预期输出 -
<h3>Code Development</h3>
<p>
here to support
<ul class="nested">
<li>list 1</li>
<li>list 2</li>
<li>list 3</li>
<li>list 4</li>
</ul>
</p>
<h3>this is strong</h3>
<p> something here</p>
强标签应该变成 H3,并且由于 H3 不能在 <p>
内部,因此将其移动到 p 之外,作为第一个出现在 p 之前。
试试这个:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="strong">
<h3><xsl:value-of select="."/></h3>
</xsl:template>
<xsl:template match="container/text()">
<xsl:if test="string-length(normalize-space()) > 0">
<p><xsl:value-of select="."/></p>
</xsl:if>
</xsl:template>
<xsl:template match="ul">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
下面是一个实际示例:http://www.utilities-online.info/xsltransformation/?save=5c53ab7f-0a1e-4fba-a608-4bb2d6ec1de0-xsltransformation#.VqDQ1SArK90