【问题标题】:How to remove empty tags in xslt?如何删除xslt中的空标签?
【发布时间】:2013-04-09 10:32:21
【问题描述】:

这是我正在使用的 XML 文件:

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

我正在尝试以表格格式而不是 HTML 表格格式将此 XML 转换为 XSL。

【问题讨论】:

  • 欢迎来到 SO。这不是问题,而是陈述。通过告诉我们究竟您要做什么、您要如何做以及您遇到什么问题,将其变成一个问题(通过您问题上的edit 链接)有...有人会尽力帮助你

标签: xml xslt


【解决方案1】:

您似乎想保留所有内容而不是“电子邮件”元素,因为它是空的,您想删除它。这是解决方案:

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

【讨论】: