Попытка конвертировать XML в таблицу HTML - PullRequest
0 голосов
/ 03 сентября 2018

Я не очень знаком с XML (и никогда не использовал листы XSL вообще), но мне было поручено использовать его для переноса вывода на веб-страницу. Я прочитал несколько вопросов XML к HTML, изложенных здесь, и учебные пособия по W3S, и кое-что написал для таблицы стилей XSL.

По сути, я хочу, чтобы в окончательном HTML-файле были распечатаны две таблицы, одна из которых отображает различные значения Arena, а вторая таблица показывает единственное значение флага.

XML лист:

<?xml version="1.0" encoding="utf-8"?>
<Stadium>
  <Arena>
    <Team>Team1</Team>
    <Field>Arena1</Field>
    <Score>100</Score>
  </Arena>
  <Arena>
    <Team>Team2</Team>
    <Field>Arena1</Field>
    <Score>100</Score>
  </Arena>
  <Arena>
    <Team>Team3</Team>
    <Field>Arena2</Field>
    <Score>100</Score>
  </Arena>
  <Flag>
    <Team>Team3</Team>
  </Flag>
</Stadium>

XSL лист:

<?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <html>
    <head>
    </head>

    <body>
        <table>
            <tr>
                <th>Team</th>
                <th>Field</th>
                <th>Score</th>
            </tr>

            <xsl:for-each select="Stadium/Arena">

                <tr>
                    <td><xsl:value-of select="Team" /></td>
                    <td><xsl:value-of select="Field" /></td>
                    <td><xsl:value-of select="Score" /></td>
                </tr>

            </xsl:for-each>
        </table>

        <table>
            <tr>
                <th>Team</th>
            </tr>

            <xsl:for-each select="Stadium/Flag">

                <tr>
                    <td><xsl:value-of select="Team" /></td>
                </tr>
            </xsl:for-each>
        </table>
    </body>
  </html>
  </xsl:template>
</xsl:stylesheet>

А это мой текущий вывод:

Team Stadium Points Team /* Google Docs Dark UI by UGoBoom */ /* Version 1.0 */ /* Published Oct 26 2015 */ /* Aesthetic inspired by Vertex-gtk theme */ @namespace url(http://www.w3.org/1999/xhtml);

Очевидно, что XSL не взаимодействует с XML должным образом. Может кто-нибудь объяснить, что еще мне нужно сделать с моей таблицей стилей XSL, чтобы распечатать правильную таблицу?

1 Ответ

0 голосов
/ 03 сентября 2018

Обобщая комментарии @ TimC , вы можете просто добавить строку типа

<?xml-stylesheet type="text/xsl" href="your.xslt" ?>

в ваш .xml файл с именем your.xslt file.
Затем в вашем XSLT-файле вы должны добавить

<xsl:output method="html" indent="yes" html-version="5" />

сразу после вашего xsl:stylesheet элемента.

Затем, если вы откроете XML-файл в браузере, вы должны получить нужные таблицы (и можете улучшить их расположение). Позаботьтесь о том, чтобы оба файла находились в одном каталоге.

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