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

  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006
  • The Platform

    The Platform

    14 HAZİRAN 2006