我有几个XML文档都包含有关同一项的元数据信息。对于一个元素,XML文档是相同的。有没有办法,使用XSLT,将这些多个文档转换为一个包含所有信息的输出XML? 在我单独的文档中,我的元数据看起来像这样:
<pbcorePart>
<pbcoreIdentifier source="something"
annotation="Object Identifier"
>filename_t10</pbcoreIdentifier>
<!-- a bunch of other stuff about this item -->
</pbcorePart>
但我最终需要的是一个XML文件,它使用关系标记将所有部分组合到一个文档中,所以它看起来像这样:
<pbcoreRelation>
<pbcoreRelationType>has part</pbcoreRelationType>
<pbcoreRelationIdentifier>filename_t01</pbcoreRelationIdentifier>
</pbcoreRelation>
<pbcoreRelation>
<pbcoreRelationType>has part</pbcoreRelationType>
<pbcoreRelationIdentifier>filename_t02</pbcoreRelationIdentifier>
</pbcoreRelation>
<pbcoreRelation>
<pbcoreRelationType>has part</pbcoreRelationType>
等
有没有办法通过XSLT转换来实现这一目标?
我在创建XSLT方面还很陌生,我已经尝试过这个但是它不起作用:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xpath-default-namespace="http://www.pbcore.org/PBCore/PBCoreNamespace.html">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="test">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<xsl:apply-templates select="document('csmha_000110_t03.xml')/pbcoreDescriptionDocument/pbcorePart"/>
<xsl:apply-templates select="document('csmha_000110_t04.xml')/pbcoreDescriptionDocument/pbcorePart"/>
</xsl:copy>
</xsl:template>