Файл a.xml:
<?xml version="1.0" encoding="UTF-8"?>
<TABLE NAME="pivot.cs">
<DATA RECORDS="2">
<RECORD ID="1">
<INTERNALID>5510</INTERNALID>
<SOMED>1</SOMED>
<PEMED>1</PEMED>
<CODAL>PLACEHOLD</CODAL>
</RECORD>
<RECORD ID="2">
<INTERNALID>5511</INTERNALID>
<SOMED>1</SOMED>
<PEMED>1</PEMED>
<CODAL>PLACEHOLD</CODAL>
</RECORD>
<INTERNALID>5537</INTERNALID>
<SOMED>1</SOMED>
<PEMED>1</PEMED>
<CODAL>PLACEHOLD</CODAL>
</DATA>
</TABLE>
файл b.xml:
<?xml version="1.0" encoding="UTF-8"?>
<TABLE NAME="ALT.CS">
<DATA RECORDS="20">
<RECORD ID="53">
<RECNO>5510</RECNO>
<TOBEEXTRACTED>TIM</TOBEEXTRACTED>
</RECORD>
<RECORD ID="53">
<RECNO>5510</RECNO>
<TOBEEXTRACTED>KLM</TOBEEXTRACTED>
</RECORD>
<RECORD ID="54">
<RECNO>5510</RECNO>
<TOBEEXTRACTED>KAB</TOBEEXTRACTED>
</RECORD>
<RECORD ID="55">
<RECNO>5511</RECNO>
<TOBEEXTRACTED>BUS WEE</TOBEEXTRACTED>
</RECORD>
<RECORD ID="59">
<RECNO>5512</RECNO>
</RECORD>
<RECORD ID="60">
<RECNO>5513</RECNO>
</RECORD>
<RECORD ID="5511">
<RECNO>5598</RECNO>
<TOBEEXTRACTED>FBV</TOBEEXTRACTED>
</RECORD>
</RECORD>
</DATA>
</TABLE>
а выходной файл должен быть файлом a.xml, но с текстом элемента TOBEEXTRACTED, добавленным в [], если совпадают один или два раза:
<?xml version="1.0" encoding="UTF-8"?>
<TABLE NAME="pivot.cs">
<DATA RECORDS="2">
<RECORD ID="1">
<INTERNALID>5510</INTERNALID>
<SOMED>1</SOMED>
<PEMED>1</PEMED>
<CODAL>PLACEHOLD</CODAL>
</RECORD>
<RECORD ID="2">
<INTERNALID>5511</INTERNALID>
<SOMED>1</SOMED>
<PEMED>1</PEMED>
<CODAL>PLACEHOLD [BUS WEE]</CODAL>
</RECORD>
<INTERNALID>5537</INTERNALID>
<SOMED>1</SOMED>
<PEMED>1</PEMED>
<CODAL>PLACEHOLD</CODAL>
</DATA>
</TABLE>
Кроме того, было бы очень полезно, если бы у нас был текстовый файл в качестве вывода, который имел бы следующую информацию: из файла a.xml,
INTERNALID: 5511 (and all the rest in a normal xml file) was matched.
INTERNALID: 5510 was matched more than two times, so no join took place.
INTERNALID: 5537 did not match
RECNO 5512 did not have a TOBEEXTRACTED element.
TOBEEXTRACTED
? - person Martin Honnen   schedule 12.05.2017<xsl:key name="ref" match="DATA/RECORD[TOBEEXTRACTED]" use="RECNO"/>
, а затем сопоставить<xsl:template match="DATA/RECORD[key('ref', INTERNALID, doc('fileb.xml')]/CODAL"><xsl:copy><xsl:value-of select="concat(., ' [', key('ref', ../INTERNALID, doc('fileb.xml'))/TOBEEXTRACTED, ']')"/></xsl:copy></xsl:template>
- person Martin Honnen   schedule 12.05.2017