Используйте XSL для построения уникальной карты из дочерних узлов, а затем отобразите ее в таблице
Я хотел бы создать xsl, который принимает следующие XML-документы в качестве входных данных
Source.xml
<root>
<children>
<child>
Source-A
</child>
<child>
Source-B
</child>
</children>
</root>
Источник-a.xml
<child>
<Objects>
<Object>
<Key>Key-1234</Key>
</Object>
<Object>
<Key>Key-5678</Key>
</Object>
</Objects>
</child>
Источник-B.xml
<child>
<Objects>
<Object>
<Key>Key-5678</Key>
</Object>
<Object>
<Key>Key-ABCD</Key>
</Object>
</Objects>
</child>
и создает вывод html, который выглядит следующим образом.
<table border=1>
<tr>
<td>
Key
</td>
<td>
Key-1234
</td>
<tr>
</tr>
<td colspan="2">
Source-A
</td>
</tr>
<tr>
<td>
Key
</td>
<td>
Key-5678
</td>
<tr>
</tr>
<td colspan="2">
Source-A
Source-B
</td>
</tr>
<tr>
<td>
Key
</td>
<td>
Key-ABCD
</td>
<tr>
</tr>
<td colspan="2">
Source-B
</td>
</tr>
</table>
Вот что у меня пока есть, но я не уверен, что это вообще возможно, есть какие-нибудь намеки на то, как это сделать? Или я пытаюсь сделать что-то невозможное?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<!--<xsl:variable name="keyMap" />-->
<xsl:variable name="keyMap">
<xsl:for-each select="root/children/child">
<xsl:variable name="object" select="."/>
<!--<xsl:value-of select="$object"/>-->
<xsl:for-each select="document(concat(translate($object,' ',''),'.xml'))/child/Objects/Object">
<xsl:value-of select="Key"/>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$keyMap"/>
</html>
</xsl:template>
</xsl:stylesheet>