如何使用XSLT将导出的xml格式化为表格式?

如何使用XSLT将导出的xml格式化为表格式?,xml,xslt,Xml,Xslt,我是stack exchange的新手,所以我会为我可能犯的任何错误提前道歉。。。 我从我们的图像管理软件中导出了这个xml,我想将它格式化为表格式。导出允许使用XSL格式化数据,但没有提供如何格式化的示例。 我希望这将是一个相当简单的任务,一旦给了一些指针。 先谢谢你。。。 杰里米 首先,欢迎来到stack overflow,在这里我们可以真正探索、分享许多想法并解决我们的问题 当您使用XML转换下面的XSLT时,您将得到表格式 XSLT: <?xml version='1.0'?>

我是stack exchange的新手,所以我会为我可能犯的任何错误提前道歉。。。 我从我们的图像管理软件中导出了这个xml,我想将它格式化为表格式。导出允许使用XSL格式化数据,但没有提供如何格式化的示例。 我希望这将是一个相当简单的任务,一旦给了一些指针。 先谢谢你。。。 杰里米


首先,欢迎来到stack overflow,在这里我们可以真正探索、分享许多想法并解决我们的问题

当您使用XML转换下面的XSLT时,您将得到表格式

XSLT:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://www.canto.com/ns/Export/1.0" exclude-result-prefixes="ns">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="ns:Export"><table xmlns:ns="http://www.canto.com/ns/Export/1.0"><xsl:apply-templates/></table></xsl:template>
<xsl:template match="ns:Fields"><thead><tr><xsl:apply-templates/></tr></thead></xsl:template>
<xsl:template match="ns:Field/ns:Name"><td><xsl:apply-templates/></td></xsl:template>
<xsl:template match="ns:Items"><tbody><xsl:apply-templates/></tbody></xsl:template>
<xsl:template match="ns:Item"><tr><xsl:apply-templates/></tr></xsl:template>
<xsl:template match="ns:FieldValue"><td><xsl:apply-templates/></td></xsl:template>
</xsl:stylesheet>


这应该是一个通用转换,还是一个针对特定情况的转换?如果它是通用的,它如何知道从记录名称值中删除.tif,并将除艺术家值的第一个字母以外的所有值更改为小写?感谢您花时间查看…不客气。你要回答我的问题吗?另外,为什么两个字段的UID相同?抱歉让您久等了。我手工输入了输出表,省略了.tif,错误地保存了艺术家值的大小写。不确定uid,这是直接从xml输出文件粘贴的,第一个版本正是我的意思!我不想在出去的时候改变数据。我手工输入了表格,给出了表格应该是什么样子的想法,并且错误地对数据做了一些更改,@jeremy根据您的要求找到我之前的版本,如果它是正确的,然后将其作为正确答案
Record Name  Title                   Accession Number    Artist    Vernon
Ca102450     Plant forms pendant     2013.133            Indian    109996
Ca102453     Horse and rider pendant 2013.212            Indian    110102
etc
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://www.canto.com/ns/Export/1.0" exclude-result-prefixes="ns">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="ns:Export"><table xmlns:ns="http://www.canto.com/ns/Export/1.0"><xsl:apply-templates/></table></xsl:template>
<xsl:template match="ns:Fields"><thead><tr><xsl:apply-templates/></tr></thead></xsl:template>
<xsl:template match="ns:Field/ns:Name"><td><xsl:apply-templates/></td></xsl:template>
<xsl:template match="ns:Items"><tbody><xsl:apply-templates/></tbody></xsl:template>
<xsl:template match="ns:Item"><tr><xsl:apply-templates/></tr></xsl:template>
<xsl:template match="ns:FieldValue"><td><xsl:apply-templates/></td></xsl:template>
</xsl:stylesheet>