如何删除xslt中的空标签?
问题描述:
这是我使用的XML文件:如何删除xslt中的空标签?
<data>
<addressrecord id = "1bdd3154dc78bd75c5f1983d640005a6" type = "person">
<category mode="main">customer</category>
<firstname>Ann-margret</firstname>
<lastname>Carlsson</lastname>
<companyname></companyname>
<address name="main">
<street>s:t Gertrudsvägen 156</street>
<zip>59341</zip>
<city>Västervik</city>
</address>
<phone subtype="home">0490-36328</phone>
<email></email>
</addressrecord>
</data>
我试图把这个XML到XSL在表格格式,而不是HTML表格格式。
答
看来你想保留所有的东西,而不是“电子邮件”元素,因为它是空的,你想删除它。这里是解决方案:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns="http://www.w3.org/1998/Math/MathML" exclude-result-prefixes="m">
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(child::node())]"/>
</xsl:stylesheet>
欢迎来到SO。这不是一个问题,而是一个陈述。把它变成一个问题(通过你的问题上的“编辑”链接),告诉我们你准备做什么,你试图做什么,以及你有什么问题。 ..有人会尝试帮助你 – freefaller 2013-04-09 10:45:34
http://stackoverflow.com/questions/7749917/xpath-xslt-remove-empty-tags的可能重复。 – 2013-04-09 10:57:39