我有以下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
谢谢。
答案 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> </xsl:text>
这给了我一个新的行