Я вижу, это довольно старый пост; тебе все еще нужен ответ? Если да, уточните, что вы подразумеваете под «связать элемент с элементом» и нужно ли вам импортировать этот файл, экспортировать его или и то, и другое.
Обновление: вот базовый XSLT, который преобразует грамматику XML FileMaker в CSDGM. Предполагается, что все данные находятся в одной таблице и экспортируются в указанном порядке. Также предполагается, что грамматика GSDGM имеет один metadata
в качестве корневого элемента, а затем повторяет idinfo
и дочерние элементы для каждой записи.
Обратите внимание, что он не будет конвертировать даты FileMaker, такие как 5/17/2010
в 20100517
; это можно записать в XSLT, но гораздо быстрее будет добавить вычисляемое поле в таблицу, которая создает такую строку, и экспортировать это поле вместо Дата .
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fm="http://www.filemaker.com/fmpxmlresult"
exclude-result-prefixes="fm">
<!-- This transformation converts FileMaker FMPXMLRESULT into CSDGM.
The assumed source data structure is that:
Origin
Date
Title
Abstract
Purpose -->
<xsl:variable name="ORIG" select="1" />
<xsl:variable name="DATE" select="2" />
<xsl:variable name="TITL" select="3" />
<xsl:variable name="ABST" select="4" />
<xsl:variable name="PURP" select="5" />
<!-- The resulting format is XML, ISO-8859-1 -->
<xsl:output method="xml" encoding="ISO-8859-1" />
<!-- Main -->
<xsl:template match="/">
<metadata>
<xsl:for-each select="//fm:ROW">
<idinfo>
<citation>
<citeinfo>
<origin>
<xsl:value-of select="fm:COL[$ORIG]" />
</origin>
<pubdate>
<xsl:value-of select="fm:COL[$DATE]" />
</pubdate>
<title>
<xsl:value-of select="fm:COL[$TITL]" />
</title>
</citeinfo>
</citation>
<descript>
<abstract>
<xsl:value-of select="fm:COL[$ABST]" />
</abstract>
<purpose>
<xsl:value-of select="fm:COL[$PURP]" />
</purpose>
</descript>
</idinfo>
</xsl:for-each>
</metadata>
</xsl:template>
</xsl:stylesheet>