2015-01-15 94 views
0

將OAI源導入Filemaker中有問題。映射是好的,但結果是空的。將OAI源導入Filemaker中

這是源:

<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://dublincore.org/documents/dcmi-namespace/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> 
<responseDate>2015-01-15T12:05:11Z</responseDate> 
<request verb="ListRecords" metadataPrefix="oai_dc"> 
http://api.memorix-maior.nl/collectiebeheer/oai-pmh/key/SORRY_THIS_KEY_I_CANNOT_SHOW/tenant/nfm 
</request> 
<ListRecords> 
<record> 
<header> 
<identifier> 
e:1d59bf74-a57c-11e1-af90-bf6f69fae6b6:000a80bf-e7d6-7670-b2bd-c269b2e58878 
</identifier> 

這就是我所做的XSLT:

<?xml version='1.0' encoding='UTF-8'?> 
<xsl:stylesheet version="1.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> 
     <ERRORCODE>0</ERRORCODE> 
      <METADATA> 
<FIELD NAME="identifier" TYPE="TEXT"/> 
      </METADATA> 
      <RESULTSET> 
      <xsl:for-each select="OAI-PMH/ListRecords/record"> 
       <ROW> 
        <COL> 
         <DATA><xsl:value-of select="header/identifier"/></DATA> 
        </COL> 
       </ROW> 
       </xsl:for-each> 
      </RESULTSET> 
     </FMPXMLRESULT> 
    </xsl:template> 
</xsl:stylesheet> 

要清楚,我只在OAI指出的第一個字段資源。

我希望你能幫我解決這個問題。

最好的問候, 佈德維裏德

+0

請在將來發布**完整**示例,以便我們可以通過直接複製/粘貼代碼來重現您的問題。 –

回答

1

之所以你的嘗試不起作用的是,源XML節點處於命名空間。您必須在樣式表聲明這個命名空間,它分配一個前綴和尋址的節點時使用的前綴:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:oai="http://www.openarchives.org/OAI/2.0/"> 
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/> 

<xsl:template match="/"> 
    <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> 
     <METADATA> 
      <FIELD NAME="identifier" TYPE="TEXT"/> 
     </METADATA> 
     <RESULTSET> 
      <xsl:for-each select="oai:OAI-PMH/oai:ListRecords/oai:record"> 
       <ROW> 
        <COL> 
         <DATA><xsl:value-of select="oai:header/oai:identifier"/></DATA> 
        </COL> 
       </ROW> 
      </xsl:for-each> 
     </RESULTSET> 
    </FMPXMLRESULT> 
</xsl:template> 

</xsl:stylesheet> 

注意
如果輸入的例子是代表,你可能想使用:

<xsl:value-of select="normalize-space(oai:header/oai:identifier)"/> 

修剪結果中無關的空格。

+0

非常感謝,現在正在工作! –