0
现在我的情况比我在In XSLT for MODS XML to FilemakerPro conversion, how treat a mod with a parameter?中询问的要复杂得多。在XML我想转换成的FileMaker Pro格式,我有:XSLT:代码如何使用多个参数嵌套字段和字段?
<name type="personal">
<namePart type="family">
Giobbi
</namePart>
<namePart type="given">
Robert
</namePart>
<role>
<roleTerm authority="marcrelator" type="code">
aut
</roleTerm>
</role>
</name>
什么我放在XSLT为<xsl:value-of select="...." />
来处理。新的并发症是:
- 源XML具有内部
name
几个元素嵌套结构。 - 对于项目
roleTerm
有两个参数authority
和code
。
在生成的XML,我想为“家庭”和“给予”的名称和为roleTerm
单独的列。
此外,在某些情况下,会有两个或更多个这样的实体。我如何处理 - 以便在目标XML中创建额外的列?是否像MAXREPEAT
从"1"
更改为更大的价值一样简单?
所需的输出应该是这样的:
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"
xmlns:mod="http://www.loc.gov/mods/v3">
<ERRORCODE>0</ERRORCODE>
<PRODUCT NAME="N/A" BUILD="N/A" VERSION="N/A"/>
<DATABASE NAME="N/A" LAYOUT="N/A" RECORDS="1" DATEFORMAT="M/d/yyyy" TIMEFORMAT="h:mm:ss a"/>
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" TYPE="TEXT" NAME="Title"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" TYPE="TEXT" NAME="Genre"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" TYPE="TEXT" NAME="LastName"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" TYPE="TEXT" NAME="FirstName"/>
</METADATA>
<RESULTSET>
<ROW MODID="1" RECORDID="1">
<COL>
<DATA>Roberto Giobbi's Card college. Volume 1</DATA>
</COL>
<COL>
<DATA>book</DATA>
</COL>
<COL>
<DATA>Giobbi</DATA>
</COL>
<COL>
<DATA>Roberto</DATA>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
我说“像”是因为,当然会有更多的行,一个在源XML的每个项目,更重要的是因为当源中有多个<name type="personal">...</name>
字段(书目源xml文件中的多个作者)时,我不知道结果应该是什么样子。
你可以添加一个你想产生的xml的例子吗? – Joep 2013-03-27 14:27:27
我不知道生成的xml应该是什么样的:它应该是FMPRESULT格式。如果没有这些新的mod项目,我会问,我能够使用带有最小XSLT的'xsltproc'来获取XML,但我不知道如何在我的查询中显示:在文本编辑器中,输出是在单线很长;在一个XML编辑器中,我有一个显示的结构,但我不知道如何把它放在这里。 – murray 2013-03-27 15:16:39
您可以编辑您的问题,然后您可以将其格式化为代码。使用类似http://www.freeformatter.com/xml-formatter.html的格式来格式化单行XML。 – Joep 2013-03-27 15:35:47