Internet Explorer и участки данных XML

Internet Explorer и участки данных XML

В Internet Explorer есть специальный тег <XML>, при помощи которого можно создавать участки (island) XML. Участок XML может содержать либо сам код XML, либо ссылку на XML-документ.

Участки XML упрощают загрузку документов XML и XSL, поэтому их стоит здесь рассмотреть. В следующем примере я создаю два участка XML, sourceDocument и stylesheet, и загружаю planets.xml и planets.xsl, просто обратившись к ним через атрибут src:

<HTML>

 <HEAD>

  <TITLE>

   The Planets Table

  </TITLE>

  <XML id="sourceDocument" src="planets.xml"></XML>

  <XML id="stylesheet" src="planets.xsl"></XML>

  .

  .

  .

Теперь для осуществления XSLT-преобразования мне нужно только применить, как и раньше, метод transformNode и присвоить результаты элементу <DIV>, чтобы вывести их (листинг 10.4).

Листинг 10.4. Загрузка документов XML и XSL при помощи участков XML

<HTML>

 <HEAD>

  <TITLE>

   The Planets Table

  </TITLE>

  <XML id="sourceDocument" src="planets.xml"></XML>

  <XML id="stylesheet" src="planets.xsl"></XML>

  <SCRIPT FOR="window" EVENT="onload">

   targetDIV.innerHTML =

    sourceDocument.transformNode(stylesheet.XMLDocument);

  </SCRIPT>

 </HEAD>

 <BODY>

  <CENTER>

   <DIV id="targetDIV"></DIV>

  </CENTER>

 </BODY>

</HTML>

Вот и все. Заметьте, что по умолчанию Internet Explorer 5.5 и младше использует устаревший процессор XSLT, как обсуждалось в главе 2 (если специально не установить процессор MSXML3 в режиме замены или IE 6.0, о чем также говорилось в главе 2). Если вы работаете с IE 5.5 или младше, у вас в распоряжении таблица стилей Internet Explorer прежнего образца, в которой нет правил по умолчанию и в которой вам придется использовать старое пространство имен XSL, как в этом примере (листинг 10 5).

Листинг 10.5. Таблица стилей Internet Explorer старого образца

<?xml version="1.0"?>

<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 <xsl:template match="/">

  <HTML>

   <HEAD>

    <TITLE>

     The Planets Table

    </TITLE>

   </HEAD>

   <BODY>

    <H1>

     The Planets Table

    </H1>

    <TABLE BORDER="2">

     <TR>

      <TD>Name</TD>

      <TD>Mass</TD>

      <TD>Radius</TD>

      <TD>Day</TD>

     </TR>

     <xsl:apply-templates/>

    </TABLE>

   </BODY>

  </HTML>

 </xsl:template>

 <xsl:template match="PLANETS">

  <xsl:apply-templates/>

 </xsl:template>

 <xsl:template match="PLANET">

  <TR>

   <TD><xsl:value-of select="NAME"/></TD>

   <TD><xsl:value-of select="MASS"/></TD>

   <TD><xsl:value-of select="RADIUS"/></TD>

   <TD><xsl:value-of select="DAY"/></TD>

  </TR>

 </xsl:template>

</xsl:stylesheet>

Как видите, при помощи JavaScript и XSLT в Internet Explorer можно сделать весьма многое. Дополнительную информацию можно подучить из руководства разработчика XSLT фирмы Microsoft, которое сейчас расположено по адресу http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/xmlsdk/xslp8tlx.htm.

Пришло время рассмотреть взаимодействие XSLT с Java, начав с обращения к Java непосредственно из процессоров XSLT.