Главная -> XML&... -> XSLT в примерах 
>> Страница 6 << | Назад | Вперед | Содержание | Указатель

Части XML-документа, к которым должен применяться шаблон, определяются путями адресации. Их синтаксис описан в Спецификации XPath. В простейших случаях он очень похож на адресацию файловой системы (преобразование 1).

Преобразование 1

Исходный XML
<source>

<AAA id="a1" pos="start">
     <BBB id="b1"/>
     <BBB id="b2"/>
</AAA>
<AAA id="a2">
     <BBB id="b3"/>
     <BBB id="b4"/>
     <CCC id="c1">
          <DDD id="d1"/>
     </CCC>
     <BBB id="b5">
          <CCC id="c2"/>
     </BBB>
</AAA>

</source>

Результат
<div style="color:purple">BBB id=b1</div>

<div style="color:purple">BBB id=b2</div>



<div style="color:purple">BBB id=b3</div>

<div style="color:purple">BBB id=b4</div>


<p style="color:red">DDD id=d1</p>


<div style="color:purple">BBB id=b5</div>

Представление HTML
BBB id=b1
BBB id=b2
BBB id=b3
BBB id=b4

DDD id=d1

BBB id=b5
Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="BBB">
     <div style="color:purple">
          <xsl:value-of select="name()"/>
          <xsl:text> id=</xsl:text>
          <xsl:value-of select="@id"/>
     </div>
</xsl:template>

<xsl:template match="/source/AAA/CCC/DDD">
     <p style="color:red">
          <xsl:value-of select="name()"/>
          <xsl:text> id=</xsl:text>
          <xsl:value-of select="@id"/>
     </p>
</xsl:template>

</xsl:stylesheet>

Raleigh.ru Copyright © 2002