Вставить XML в HTML (совместимый с Firefox) - PullRequest
2 голосов
/ 19 октября 2011

У меня есть файл XML (динамически создаваемый) и таблица стилей XSL;если я открою XML-файл в Firefox, я получу хорошую таблицу вывода.

Однако я хочу отобразить эти данные на HTML-странице.Я пытался использовать:

HTML-файл:

<html>
  <body>
    <xml src="test_data.xml">
    </xml>
    </body>
</html>

Но я не могу ничего визуализировать.И мой XML-файл, и мой XSL-файл находятся в одном каталоге.

Я пытался удалить <html> и <body> из моего вывода XSL, но все еще не получил результатов.

В сети я читал, что некоторые методы отличаются для IE и Firefox;Как я могу отобразить XML-файл на HTML-странице в Firefox?


XML-файл ( test_data.xml ):

<?xml-stylesheet type="text/xsl" href="report_proteins.xsl"?>
<group_list>
    <protein_group>
        <protein name="A_1" />
        <protein name="A_2" />
    </protein_group>
    <protein_group>
        <protein name="B_1" />
    </protein_group>
    <protein_group>
        <protein name="C_1" />
        <protein name="C_2" />
        <protein name="C_3" />
    </protein_group>
</group_list>


XSLфайл ( report_proteins.xsl ):

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
    <h2>MAP proteins</h2>
    <table border="0">
      <tr>
        <th bgcolor="#E7FFCC">Group number</th>
        <th bgcolor="#D2FBFF">Proteins</th>
      </tr>
      <xsl:for-each select="group_list/protein_group">
        <tr>
          <td>
            <xsl:number />
          </td>
          <td>
          <xsl:for-each select="protein">
            <xsl:value-of select="@name"/><xsl:text>&#160;</xsl:text>
          </xsl:for-each>
          </td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

Ответы [ 4 ]

4 голосов
/ 19 октября 2011

В HTML нет такого xml узла, поэтому он не работает.Вам не нужен файл HTML вообще.Ваш лист XSLT генерирует полный документ XHTML, и браузер должен иметь возможность отображать его в том виде, как он есть, если вы откроете поиск XML в браузере.

Необходимо добавить пространство имен XHTML в таблицу стилей XSLT.

1 голос
/ 24 февраля 2015

Использовать элемент iframe.

<iframe src="test_data.xml"></iframe>
0 голосов
/ 08 июня 2016

Вы также можете обернуть его внутри тега iframe вместо тега xml:

<html>
  <body>
    <iframe src="test_data.xml"></iframe>
    </xml>
    </body>
</html>
0 голосов
/ 19 октября 2011

Вообще говоря, нет, это не поддерживается веб-браузерами.

Вам, вероятно, следует выполнить преобразование на сервере и отправить HTML-код в браузер.

Я не рекомендуюэто, но если вы должны сделать это на стороне клиента, взгляните на http://goog -ajaxslt.sourceforge.net / , который предположительно реализует xslt в javascript (я никогда не был настолько глуп, чтобы попробовать это,так что я не знаю, работает ли это на самом деле).

...