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

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010
  • SerienTrailerMP

    SerienTraile

    7 HAZİRAN 2012