Я новичок в XSLT и пытаюсь преобразовать файл XML, сгенерированный из Filemaker Pro, используя грамматику fmpxmlresult.
Filemaker выводит RAW XML следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="02-13-2018" NAME="FileMaker" VERSION="ProAdvanced 16.0.5" />
<DATABASE DATEFORMAT="D/m/yyyy" LAYOUT="" NAME="fatture elettronica.fmp12" RECORDS="1" TIMEFORMAT="k:mm:ss " />
<METADATA>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="data" TYPE="DATE" />
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ID" TYPE="TEXT" />
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="righe::descrizione" TYPE="TEXT" />
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="righe::prezzo" TYPE="TEXT" />
</METADATA>
<RESULTSET FOUND="1">
<ROW MODID="1" RECORDID="1">
<COL>
<DATA>31/08/2018</DATA>
</COL>
<COL>
<DATA>1</DATA>
</COL>
<COL>
<DATA>patate</DATA>
<DATA>pomodori</DATA>
<DATA>uva</DATA>
</COL>
<COL>
<DATA>100</DATA>
<DATA>50</DATA>
<DATA>70</DATA>
</COL>
</ROW>
</RESULTSET>
</FMPXMLRESULT>
В моем XSLT я выбираю поля, используя
<xsl:value-of select="fmp:COL[1]/fmp:DATA"/>
Это работает, но это немного сбивает с толку, потому что у меня есть XML-файл с большим количеством полей, и я могу легко указать неправильное поле по номеру.
Есть ли способ выбрать поле, используя имя поля, которое указано в разделе метаданных?
Я пытался искать, но я не могу даже представить правильные ключевые слова для поиска.
Спасибо