Как создать таблицу с помощью xslt - PullRequest
0 голосов
/ 25 марта 2020

У меня есть словарь внутри тега, и я хотел создать таблицу из него. Вот файл xml, который у меня есть

<parent>
  <thread thread_id="5e778ef9a28f9a51fec330b4">
    {'relative_to_thread_interactors': 1.0, 'relative_to_self_threads': 1.0}
  </thread>
  <thread thread_id="5e778ef9a28f2b51fec330A3">
    {'relative_to_thread_interactors': 2.0, 'relative_to_self_threads': 1.0}
  </thread> 
</parent>

А вот мой xslt


<xsl:for-each select="parent/thread">
  <tr>
    <td><xsl:value-of select="@thread_id"/></td>
    <td><xsl:value-of select="thread"/></td>
  </tr>
</xsl:for-each>

Теперь у меня вопрос, как создать таблицу из значения словаря?

| thread_id                | relative_to_thread_interactors |
|--------------------------|--------------------------------|
| 5e778ef9a28f2b51fec330A3 | 2.0                            |

1 Ответ

2 голосов
/ 25 марта 2020

В XSLT 1.0 вы можете сделать:

<xsl:template match="/parent">
    <table>
        <tr>
            <th>thread_id</th>
            <th>relative_to_thread_interactors</th>
        </tr>
        <xsl:for-each select="thread">
            <tr>
                <td>
                    <xsl:value-of select="@thread_id"/>
                </td>
                <td>
                    <xsl:value-of select='substring-before(substring-after(., "&apos;relative_to_thread_interactors&apos;: "), ",")'/>
                </td>
            </tr>
        </xsl:for-each>
    </table>
</xsl:template>

В XSLT 2.0 это может быть более элегантно с помощью регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...