2009-07-16 19 views
13

Bir ağaçtan bazı öğeleri çıkarmak için XSL kullanmak istiyorum.XSL: bir ağaç nasıl kopyalanır, ancak bazı düğümler nasıl kaldırılır?

varsayalım ben aşağıdaki XML ağacım var:

<?xml version="1.0" ?> 
<mydoc> 
    <file> 
     <colors> 
      <blue /> 
      <red /> 
      <green /> 
     </colors> 
     <secret> 
      <username /> 
      <password /> 
     </secret> 
    </file> 
</mydoc> 

ondan kullanıcı adı ve şifre düğümlerini kaldırmak istiyor. XSL ile nasıl devam edebilirim?

cevap

24

kimlik dönüşümü. XSLT'de ortak bir tasarım deseni, her şeyi kopyalayacak bir dönüşümdür. Ardından, kaynak ve hedef arasında neyin farklı olduğunu kaldırmak veya dönüştürmek için şablonlar eklersiniz.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="node() | @*"> 
     <xsl:copy> 
      <xsl:apply-templates select="node() | @*"/> 
     </xsl:copy> 
    </xsl:template> 
    <xsl:template match="username|password"/> <!-- this empty template will remove them --> 
</xsl:stylesheet> 
+0

Harika ve çok basit resimli! +1 – Cerebrus

+0

+1 Bu desen hakkında bir şey bilmiyordum. Çok açık ve zarif. – mkoeller

+3

Bu şablon nasıl aranır? – Abhilash

İlgili konular