2014-04-09 80 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个问题的答案。