Преобразуйте данные XML в таблицу HTML, используя XSLT - PullRequest
0 голосов
/ 17 апреля 2020

В настоящее время я застрял при попытке получить список элементов в произвольном порядке без указания их принадлежности друг к другу, чтобы они были сгруппированы в строки в таблице HTML. Я думал о создании какого-либо вида поиска, в котором я могу вручную создать группировку, но не уверен, будет ли это слишком тяжело при обходе узлов для создания таблицы HTML.

СЛОВАРЬ XML (Возможное решение с использованием таблицы поиска, подобной этой?)

<?xml version = "1.0" encoding = "UTF-8"?>
<dictionary>
    <group1><Codes>1000038,1000080,1000050,1000092</Codes></group1>
    <group2><Codes>1000039,1000081,1000051,1000093</Codes></group2>
    <group3><Codes>1000040,1000082,1000052,1000094</Codes></group3>
    <group4><Codes>1000041,1000083,1000053,1000095</Codes></group4>
    <group5><Codes>1000042,1000084,1000054,1000096</Codes></group5>
    <group6><Codes>1000085,1000097</Codes></group6>
    <group7><Codes>1000086,1000098</Codes></group7>
    <group8><Codes>1000087,1000099</Codes></group8>
    <group9><Codes>1000088,1000100</Codes></group9>
    <group10><Codes>1000089,1000101</Codes></group10>
</dictionary>

Источник XML, который мне нужно преобразовать, следующий:

<People>
    <Person>
        <Code>1000038</Code>
        <ShortName>Frank G2</ShortName>
    </Person>
    <Person>
        <Code>1000080</Code>
        <ShortName>Frank G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000039</Code>
        <ShortName>David G2</ShortName>
    </Person>
    <Person>
        <Code>1000081</Code>
        <ShortName>David G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000040</Code>
        <ShortName>Alison G2</ShortName>
    </Person>
    <Person>
        <Code>1000082</Code>
        <ShortName>Alison G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000041</Code>
        <ShortName>John G2</ShortName>
    </Person>
    <Person>
        <Code>1000083</Code>
        <ShortName>John G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000042</Code>
        <ShortName>Basil G2</ShortName>
    </Person>
    <Person>
        <Code>1000084</Code>
        <ShortName>Basil G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000085</Code>
        <ShortName>Bands G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000086</Code>
        <ShortName>Melinda G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000087</Code>
        <ShortName>Sue G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000088</Code>
        <ShortName>Mandy G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000089</Code>
        <ShortName>George G2 man</ShortName>
    </Person>
    <Person>
        <Code>1000050</Code>
        <ShortName>Frank abs</ShortName>
    </Person>
    <Person>
        <Code>1000092</Code>
        <ShortName>Frank abs man</ShortName>
    </Person>
    <Person>
        <Code>1000051</Code>
        <ShortName>David Abs</ShortName>
    </Person>
    <Person>
        <Code>1000093</Code>
        <ShortName>David Abs man</ShortName>
    </Person>
    <Person>
        <Code>1000052</Code>
        <ShortName>Alison abs</ShortName>
    </Person>
    <Person>
        <Code>1000094</Code>
        <ShortName>Alison abs man</ShortName>
    </Person>
    <Person>
        <Code>1000053</Code>
        <ShortName>John Abs</ShortName>
    </Person>
    <Person>
        <Code>1000095</Code>
        <ShortName>John Abs man</ShortName>
    </Person>
    <Person>
        <Code>1000054</Code>
        <ShortName>Basil abs</ShortName>
    </Person>
    <Person>
        <Code>1000096</Code>
        <ShortName>Basil abs man</ShortName>
    </Person>
    <Person>
        <Code>1000097</Code>
        <ShortName>Bands Abs man</ShortName>
    </Person>
    <Person>
        <Code>1000098</Code>
        <ShortName>Melinda Abs man</ShortName>
    </Person>
    <Person>
        <Code>1000099</Code>
        <ShortName>Sue man</ShortName>
    </Person>
    <Person>
        <Code>1000100</Code>
        <ShortName>Mandy man</ShortName>
    </Person>
    <Person>
        <Code>1000101</Code>
        <ShortName>George Abs man</ShortName>
    </Person>
</People>

Требуемый HTML вывод:

<table>
  <tbody>
    <tr>
      <td>Group 1 </td>
      <td>Group 1</td>
    </tr>
    <tr>
      <td>Group 2</td>
      <td>Group 2</td>
    </tr>
    <tr>
      <td>Group 3</td>
      <td>Group 3</td>
    </tr>
  </tbody>
</table>

Буду признателен за любую помощь в правильном направлении движения.

...