输入为:
<p> </p>
输出为:
<p></p>
我想删除输出文件中的空标签,因为 
是nbsp,并且在输出中它已转换为空格,但是我不希望该标签带有空格。
输入为:
<div>
<title>Operational Commands</title>
<p>show ip nat filtershow ip nat interfaceshow ip nat interface-statistics</p>
<div>
<title>Release Information</title>
<p>Command introduced in Viptela Software Release 18.3.</p>
</div>
<div>
<title>Additional Information</title>
<p>See the Configuring Transport-Side NAT article for your software release.</p>
<p> </p>
</div>
我的xslt代码是:
<xsl:variable name='list' select='//div'/>
<xsl:template match='/'>
<xsl:for-each select='$list'>
<xsl:element name='section'>
<xsl:apply-templates select='*[not(name(.)="div")]'/>
</xsl:element>
</xsl:for-each>
</xsl:template>
输出为:
<section>
<title>Operational Commands</title>
<p>show ip nat filtershow ip nat interfaceshow ip nat interface-statistics</p>
</section><section>
<title>Release Information</title>
<p>Command introduced in Viptela Software Release 18.3.</p>
</section><section>
<title>Additional Information</title>
<p>See the Configuring Transport-Side NAT article for your software release.</p>
<p> </p>
</section>
在上一节<p>
中,标签有空格,这被视为空标签,然后我需要删除此空标签。我该如何删除呢?
答案 0 :(得分:1)
首先,包含不间断空格的元素不为空。除非您已指示样式表对其进行转换,否则不间断空格不会在输出中“将其转换为空间”。
现在,要删除<p> </p>
元素,您可以添加一个与之匹配的空模板:
<xsl:template match="p[.=' ']"/>
如果需要,可以制作一个更通用的模板,该模板删除所有空白和仅包含空白的p
元素:
<xsl:template match="p[not(normalize-space(translate(., ' ', ' ')))]"/>