Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

.

.

 </xsl:template>

</xsl:stylesheet>

В новом шаблоне, обрабатывающем элементы

<PLANET>
, я должен извлечь данные из каждого элемента
<PLANET>
, то есть восстановить значения в дочерних элементах элемента
<PLANET>
, таких как
<MASS>
,
<DAY>
и т.д.:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xml" href="#"?>

<PLANETS>

 <PLANET>

<NAME>Mercury</NAME>

<MASS UNITS="(Earth = 1)">.0553</MASS>

<DAY UNITS="days">58.65</DAY>

<RADIUS UNITS="miles">1516</RADIUS>

<DENSITY UNITS="(Earth = 1)">.983</DENSITY>

<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 .

 .

 .

Это можно сделать при помощи элемента

<xsl:value-of>
.

Доступ к значениям узлов

Элемент

<xsl:value-of>
записывает в результирующий документ строковое значение выражения; в частности, с его помощью можно возвратить значение узла, которым для элемента будет заключенный в элемент текст. Атрибуту выбора элемента
<xsl:value-of>
можно присвоить выражение XPath, задающее узел или набор узлов. В шаблоне, задающем элементы
<PLANET>
, обратиться к дочернему элементу
<MASS>
можно при помощи выражения XPath "
child::MASS
". Как мы увидим в главе 4, выражения XPath можно писать разными способами: например, вместо "
child::MASS
" можно просто написать "
MASS
". Таким образом, получить данные дочерних элементов, таких как
<MASS>
,
<DAY>
и т.д., можно следующим способом (листинг 3.1).

Листинг 3.1. Полная версия planets.xsl

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

<BODY>

<Н1>

The Planets Table

</Н1>

<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="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>

Создание образцов выбора

Как вы могли ожидать, исходя из того, что "

child::MASS
" можно представить в виде "
MASS
" и применения шаблонов, таких как "
/
", "
/PLANETS
" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.

Образцы выбора (match pattern) являются подмножеством полного языка XPath, их можно использовать в элементах

<xsl:template
>,
<xsl:key>
и
<xsl:number>
. В частности, в образец можно установить атрибут match у
<xsl:template>
и
<xsl:key>
, и атрибуты
count
и
from
элемента
<xsl:number>
. В следующем списке приведен ряд примеров образцов выбора, много других примеров будет показано в главе 4 при подробном обсуждении использования XPath для выбора узлов и атрибутов:

  • Читать дальше
  • 1
  • ...
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: