2013-04-09 5 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. Это не вопрос, это заявление. Поверните его в вопрос (через ссылку «edit» на ваш вопрос), сообщив нам, что ** точно **, что вы пытаетесь сделать, как вы пытаетесь это сделать и какие у вас проблемы. .. и кто-то попробует и поможет вам – freefaller

+0

Возможный дубликат http://stackoverflow.com/questions/7749917/xpath-xslt-remove-empty-tags. –

ответ

0

Кажется, вы хотите сохранить все, что есть вместо элемента «email», потому что оно пустое, вы хотите его удалить. Вот решение:

<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> 
Смежные вопросы