2016-04-01 12 views
0

Tek bir XML öğesini düzenlemeye çalışıyorum; Bu öğeyi başka bir şeye yeniden adlandırmaya çalışıyorum ama bunu doğru yaptığımı sanmıyorum. aşağıya bakınız. XML Değiştirmek istiyorum. şimdilik sadece <test1>'u <blah>'a değiştirmek istiyorum.XSLT'ye XML ile XML -

<Csv>  
<Row rowNo="1">  
<test1>1999-01-02T10:30:20</test1> 
<test2>200</test2> 
<test3>17</test3>  
<test4>1</test4>  
<test5>15</test5> 
<test6>10</test6>  
<test7>210</test7>  
<test8>main strip Top</test8>  
<test9>Tyre Check</test9> 
</Row> 
<Row rowNo="2"> 
<test1>2014-03-08T10:30:20</test1>  
<test2>200</test2>  
<test3>17</test3>  
<test4>1</test4>  
<test5>45</test5>  
<test6>14</test6>  
<test7>520</test7> 
<test8>main strip Left</test8>  
<test9>Tyre Fixed</test9> 

Burada XSL aktarım yöntemim geçerli.

<?xml version="1.0" encoding="UTF-8"?><?xe.source ../output.xml#Csv?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="xml" media-type="text/xml"></xsl:output> 
    <xsl:template match="/"></xsl:template> 

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

    <xsl:template match="Row/test1">  
    <xsl:element name="blah"> 
     <xsl:apply-templates select="node()|@*"></xsl:apply-templates> 
    </xsl:element>   
    </xsl:template>   
</xsl:stylesheet> 

Öğeyi yeni adla değiştiremiyorum.

cevap

1

sorun kök Csv elemanının ebeveyni bu şablon maçın

<xsl:template match="/"></xsl:template> 

/ belge düğümünü maçları, beraberdir. Eşleştiriyorsunuz ve ardından işlemi etkili bir şekilde durduruyorsunuz, dolayısıyla XSLT'nizdeki başka hiçbir şablon eşlenmeyecektir.

Bu şablon eşleşmesini kaldırırsanız, beklendiği gibi çalışır.

+0

gerçekten yaptı, teşekkürler Tim C –