我正在将合格的都柏林核心转变为MODS。我需要将两个元素合并为一个,我在这里找到的其他帖子不适用,因为它们匹配父元素。
Dublin Core在XSLT中存在问题,因为它没有父元素和子元素......所以我不确定选择哪个。
这是一些示例输入(重要位是dc:coverage元素):
<?xml version="1.0"?>
<oai_dc:dc (schema etc.)>
<dc:title>This is the title</dc:title>
<dc:creator>Author McAuthorson</dc:creator>
<dc:type>Article</dc:type>
<dc:coverage.spatial.lat>49.101</dc:coverage.spatial.lat>
<dc:coverage.spatial.long>-122.720</dc:coverage.spatial.long>
</oai_dc:dc>
这是dc:coverage元素所需的输出:
<subject>
<cartographics>
<coordinates>49.101, -122.720</coordinates>
</cartographics>
</subject>
我已经阅读过可以处理具有相同名称的不同元素的解决方案,但没有任何可以将两个元素组合在一起的名称不同。我已经尝试将这些设置为变量,但无法确定如何将变量从一个模板(例如匹配dc:coverage.spatial.lat)传递到下一个(匹配dc:coverage.spatial.long)。所以我有点盲目。
非常感谢任何建议(或指向我找不到的适用答案的链接)。
答案 0 :(得分:0)
为什么你不能做到:
<xsl:template match="/oai_dc:dc">
<subject>
<cartographics>
<coordinates>
<xsl:value-of select="dc:coverage.spatial.lat" />
<xsl:text>, </xsl:text>
<xsl:value-of select="dc:coverage.spatial.long" />
</coordinates>
</cartographics>
</subject>
</xsl:template>