2013-04-09 135 views
-1

这是我使用的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表格格式。

+1

欢迎来到SO。这不是一个问题,而是一个陈述。把它变成一个问题(通过你的问题上的“编辑”链接),告诉我们你准备做什么,你试图做什么,以及你有什么问题。 ..有人会尝试帮助你 – freefaller 2013-04-09 10:45:34

+0

http://stackoverflow.com/questions/7749917/xpath-xslt-remove-empty-tags的可能重复。 – 2013-04-09 10:57:39

回答

0

看来你想保留所有的东西,而不是“电子邮件”元素,因为它是空的,你想删除它。这里是解决方案:

<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>