用于导入Filemaker的XSL样式表

时间:2014-02-04 16:52:08

标签: xslt filemaker

我已成功使用xsl样式表将Zotero MODS文件中的某些元素导入Filemaker。但是,有些元素似乎嵌套在其他元素中,我无法弄清楚代码。以下是我要导入的.xml文件的一部分:

- <relatedItem type="host">
    <genre authority="marcgt">journal</genre> 
  - <part>
    - <detail type="volume">
       <number>3</number> 
      </detail>

我希望日志的卷号转到Filemaker中名为“volume”的字段。请问有人可以帮忙解决这些问题吗?

这是我尝试过的,但没有一个有效:

"mod:part" />
"mod:part/mod:detail[@type='volume']" />
"mod:part/mod:detail[@type='volume']/number" />
"mod:relatedItem[@type='volume']" />
"mod:relatedItem[@type='host']/volume" />
"mod:relatedItem[@type='host']/mod:detail[@type='volume']" />

我想我明白了:

"mod:relatedItem[@type='host']/mod:part/mod:detail[@type='volume']" />

现在我有另一个问题。当两个元素(如作者姓名)相同但只导入一个元素时,如何同时导入两个元素?这是一个例子:

- <name type="personal">
  <namePart type="family">Cleveland</namePart> 
  <namePart type="given">Jonnie</namePart> 
- <role>
  <roleTerm type="code" authority="marcrelator">aut</roleTerm> 
  </role>
  </name>
- <name type="personal">
  <namePart type="family">Crowe</namePart> 
  <namePart type="given">Margie W</namePart>

我已经让第一个作者使用它进行导入:

         <COL>
          <DATA>
            <xsl:value-of select="mod:name/mod:namePart[@type='family']" />
          </DATA>
        </COL>
        <COL>
          <DATA>
            <xsl:value-of select="mod:name/mod:namePart[@type='given']" />
          </DATA>
        </COL>

1 个答案:

答案 0 :(得分:0)

<COL>
  <DATA>
    <xsl:value-of select="mod:genre[@authority='local']" />
  </DATA>
</COL>
<COL>
  <DATA>
    <xsl:value-of select="mod:relatedItem[@type='host']/part/detail[@type='volume']" />
  </DATA>
</COL>

你说“第一个有效”,这表明这里的上下文是relatedItem元素。在这种情况下,第二个value-of不需要路径中的relatedItem位,但如果原始文档具有全局xmlns="...",那么 需要在路径的其他步骤上使用名称空间前缀,请尝试以下方法:

<xsl:value-of select="mod:part/mod:detail[@type='volume']" />