繁体   English   中英

XSLT:将多个不相关的元素合并为一个元素

[英]XSLT: combine multiple unrelated elements into one element

我正在将合格的Dublin Core转换为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)。 所以我有点盲目。

任何建议(或指向我找不到的适用答案的链接)将不胜感激。

您为什么不能简单地做:

<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM