Nasıl xml stil ve xsltproc ile xslt kullanarak öğeleri kaldırmak için? | Netgez.com
SORU
26 Kasım 2008, ÇARŞAMBA


Nasıl xml stil ve xsltproc ile xslt kullanarak öğeleri kaldırmak için?

Formun bir şey var olan XML dosyaları var:

< Element  
    fruit="apple"  
    animal="cat" 
/>

Dosyadan kaldırılmasını istiyorum.

Bir XSLT stil ve komut satırı yardımcı xsltproc Linux kullanarak, bunu nasıl yapabilirim?

Senaryoda bu noktada ben zaten dosyaları kaldırmak için keşke unsuru içeren bir liste var, tek sıra bir parametre olarak kullanılabilir.

< / ^ hr .

DÜZENLEME:soru aslında niyeti yoktu.

Elde etmeye çalıştığım tüm eleman kaldırmaktır "" (meyve=="" & & hayvan=="") kedi. elma Elemanı Birçok unsur vardır aynı belgede "adlı bu kalmasını diliyorum. Element Bu yüzden

< Element  
    fruit="orange"  
    animal="dog" 
/>
< Element  
    fruit="apple"  
    animal="cat" 
/>  
< Element  
    fruit="pear"  
    animal="wild three eyed mongoose of kentucky" 
/>

Duruma

< Element  
    fruit="orange"  
    animal="dog" 
/>
< Element  
    fruit="pear"  
    animal="wild three eyed mongoose of kentucky" 
/>

CEVAP
26 Kasım 2008, ÇARŞAMBA


En temel XSLT tasarım desenleri kullanarak bir: "identity transformation Geçersiz kılma" sadece şunları yazacaktır:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:output omit-xml-declaration="yes"/>

    <xsl:template match="node()|@*">
      <xsl:copy>
         <xsl:apply-templates select="node()|@*"/>
      </xsl:copy>
    </xsl:template>

    <xsl:template match="Element[@fruit='apple' and @animal='cat']"/>
</xsl:stylesheet>

Notnasıl ikinci şablon geçersiz kılar kimliği (1) şablon sadece element isimli "Eleman" olan bir nitelik "meyve" değer "apple" ve nitelik "hayvan" olan değeri "kedi". Bu şablonu eşleşen öğe basitçe göz ardı edilir anlamına gelir boş gövde (boş zaman üretilir).

Bu dönüşüm aşağıdaki kaynak XML belgesi üzerinde uygulandığında:

<doc>... 
    <Element name="same">foo</Element>...
    <Element fruit="apple" animal="cat" />
    <Element fruit="pear" animal="cat" />
    <Element name="same">baz</Element>...
    <Element name="same">foobar</Element>...
</doc>

istenilen sonuç üretti

<doc>... 
    <Element name="same">foo</Element>...
    <Element fruit="pear" animal="cat"/>
    <Element name="same">baz</Element>...
    <Element name="same">foobar</Element>...
</doc>

Ve kimlik şablonu kullanarak geçersiz kılma daha fazla kod parçacıkları bulunabilirhere.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011