0

我有以下 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

谢谢你。

4

1 回答 1

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>

这给了我一条新线

于 2013-03-21T09:11:19.107 回答