2014-04-09 112 views
0

我正在處理複雜的xml數據,我想根據自己的結構更改此xml。XML數據轉換錯誤

示例xml和xsl代碼如下。如果我刪除這xmlns="http://www.xasdasdasdasd.com/"部分它的作品。

--xml

<export xmlns="http://www.xasdasdasdasd.com/"> 
<extract date="2007-12-05"> 
    <counters> 
     <counter category="dispatcher" name="server1"> 
      <runtime>6</runtime> 
      <queue>3</queue> 
      <maxrequest>8</maxrequest> 
      <color>blue</color> 
      <host> 
       <name>svo2555</name> 
       <path>\\dispatcher</path> 
       <lastaccessed>2007-02-03</lastaccessed> 
      </host> 
     </counter> 
     <counter category="gateway" name="server1"> 
      <runtime>1</runtime> 
      <queue>10</queue> 
      <maxrequest>10</maxrequest> 
      <color>purple</color> 
      <host> 
       <name>svo2555</name> 
       <path>\\gateway</path> 
       <lastaccessed>2007-02-03</lastaccessed> 
      </host> 
     </counter> 
    </counters> 
</extract> 
</export> 

---- XSL

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > 
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 
<xsl:template match="//export"> 
    <xsl:variable name="extractDate" select="//extract/@date" /> 
    <counters> 
    <xsl:for-each select="//counters/counter"> 
     <counter> 
      <extractDate><xsl:value-of select="$extractDate"/></extractDate> 
      <category><xsl:value-of select="@category"/></category> 
      <name><xsl:value-of select="@name"/></name> 
      <runtime><xsl:value-of select="runtime"/></runtime> 
      <queue><xsl:value-of select="queue"/></queue> 
      <maxrequest><xsl:value-of select="maxrequest"/></maxrequest> 
      <color><xsl:value-of select="color"/></color> 
      <hostName><xsl:value-of select="host/name"/></hostName> 
      <path><xsl:value-of select="host/path"/></path> 
      <lastaccessed><xsl:value-of select="host/lastaccessed"/></lastaccessed> 
     </counter> 
    </xsl:for-each> 
    </counters> 
</xsl:template> 
</xsl:stylesheet 
+3

請參閱:http://stackoverflow.com/questions/22590320/not-getting-data-to-transform-xml/22590777#22590777 –

回答

0

把你的XML命名空間中的一切都改變了,因爲你已經發現。搜索「XSLT默認命名空間」,你會發現669個問題的答案。