【发布时间】:2017-03-23 20:15:03
【问题描述】:
我正在将合格的都柏林核心转换为 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)。所以我有点盲目。
任何建议(或我找不到的适用答案的链接)将不胜感激。
【问题讨论】:
-
同一父级下是否可以有多个纬度/经度对(在您的示例中为
oai_dc:dc)? -
不 - 每条记录只有一组纬度/经度对。
-
我会质疑您自学 XSLT 的策略。您无法通过在网上搜索完全符合您要求的示例来学习编程语言。您需要学习这些原则并掌握构建块,以便您可以将它们结合起来为您的特定问题创建自己的解决方案。如果您不知道如何将变量从一个模板传递到另一个模板,那么您就没有从正确的位置获取信息。给自己买一本好的 XSLT 书,然后阅读。
标签: xml xslt dublin-core