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