1
所以,我有我从具有这种基本结构,政府下载了一些XML数据:转换XML元素与属性为所有属性
<axis pos="6" values="3">
<title>Device</title>
<label code="7">Autologous Tissue Substitute</label>
<label code="J">Synthetic Substitute</label>
<label code="K">Nonautologous Tissue Substitute</label>
</axis>
而且我想用XSLT来获得输出看起来是这样的(我将然后加载到关系型数据库表):
<axis pos="6" title="Device" code="7" label="Autologous Tissue Substitute" />
<axis pos="6" title="Device" code="J" label="Synthetic Substitute" />
<axis pos="6" title="Device" code="K" label="Nonautologous Tissue Substitute" />
我真的不知道XSLT非常好(即我刚刚看了网上的一些教程了大约一个小时。)所以我想到的是:
<xsl:template match="axis">
<axis pos="{pos}">
<xsl:for-each select="*">
<xsl:attribute name="{name()}">
<xsl:value-of select="text()" />
</xsl:attribute>
</xsl:for-each>
</axis>
</xsl:template>
这导致:
<axis pos="" title="Device" label="Nonautologous Tissue Substitute"/>
的第一个问题是空值的POS属性和遗漏码属性。但更大的问题是我只能得到一个轴标签而不是三个。我感觉我要么在错误的标签级别上工作,要么我错过了每一个。
任何帮助/链接到有用的教程表示赞赏。
这是很好的。有没有办法做到这一点,而不必指定轴和标签的属性,但动态地完成它(如果格式改变)? – JoeNahmias