XML转换

时间:2013-03-21 07:36:56

标签: xml transform

我有以下xml表:

<?xml version='1.0' encoding='windows-1256'?>
<tc>
<tt>
    <sd>112</sd>
    <sN>Good Day</sN>
    <id>468629</id>
   </tt>
   </tc>

我要转换为以下内容:

<Tada schemaVersion="2" xmlns:ge="ST" xmlns:gl="TS" xmlns:ga="SG">
<ge:test internalID="90566" dateAdded="2013-03-19T11:49:28" lastEdited="2013-03-    20T16:26:49" >
   <ge:TN="World" internalID="161634" />

  </ge:test>
</Tada>

我把它们剪短了,因为它们是非常长的文件。但这里的想法是从第一个xml转换为第二个xml。现在我该怎么把这一行:schemaVersion放到我的最终输出中,其余的项目应该很容易转换/匹配。我会尝试使用XPath命令。我尝试使用XSLT如下:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <Tada schemaVersion="2" xmlns:ge="ST" xmlns:gl="TS" xmlns:ga="SG">
    <xsl:template match="/">

 <Title>
            <xsl:value-of select="//tt/sd"> </xsl:value-of>

      </Title>

    </xsl:template>
     </tada>
</xsl:stylesheet>

但在上面的测试中,它没有写出:架构版本行,而是按如下方式输出整个文件:

112
Good Day
468629

谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案:

这似乎在我的工作中起作用:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:template match="/">
 <Tada schemaVersion="2" xmlns:ge="ST" xmlns:gl="TS" xmlns:ga="SG">
 <Title>
          <xsl:value-of select="//tt/sd"> </xsl:value-of>

   </Title>
</tada>

</xsl:template>
 </xsl:stylesheet>

我正在使用氧气,为什么它没有显示与左侧相同。相反,它给我输出所有在一行。如何解决这个问题。

编辑:

通过添加以下内容解决:

<xsl:text>&#10;</xsl:text>

这给了我一个新的行