Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«XSLTΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 58

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π₯ΠΎΠ»Π·Π½Π΅Ρ€

   </TR>

   <TR>

    <TD><B>Earth</B></TD>

    <TD><B>1 (Earth = 1)</B></TD>

    <TD><B>2107 miles</B></TD>

    <TD><B>1 days</B></TD>

   </TR>

  </TABLE>

 </BODY>

</HTML>

Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 6.4.

Рис. 6.4. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 


Π Π΅ΠΆΠΈΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°; классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” созданиС оглавлСния.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт созданиС оглавлСния. Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² planets.xml ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² элСмСнтС <TOC> (table of contents, ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅), ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌ Ρ‚Ρ€ΠΈ элСмСнта <ENTRY> для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ»Π°Π½Π΅Ρ‚. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь ΠΌΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π²Π° шаблона, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠ΅ элСмСнты <PLANET>, β€” ΠΎΠ΄ΠΈΠ½ для создания оглавлСния ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ для копирования всСх элСмСнтов <PLANET> Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ β€” я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ€Π΅ΠΆΠΈΠΌΡ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ. Начну с установки Ρ€Π΅ΠΆΠΈΠΌΠ° Π² Β«tocΒ» ΠΈ примСнСния шаблона, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ этот Ρ€Π΅ΠΆΠΈΠΌ ΠΈ создаСт ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

  <PLANETS>

   <TOC>

    <xsl:apply-templates mode="toc"/>

   </TOC>

   .

   .

   .

  </PLANETS>

 </xsl:template>


 <xsl:template match="PLANET" mode="toc">

  <ENTRY>

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

  </ENTRY>

 </xsl:template>

 .

 .

 .

Π—Π°Ρ‚Π΅ΠΌ я ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽ ΠΎΠ±Ρ‰ΠΈΠΉ шаблон Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎ всСм элСмСнтам ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ, копируя ΠΈΡ… Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (листинг 6.14).

Листинг 6.14. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ оглавлСния

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

  <PLANETS>

   <TOC>

    <xsl:apply-templates mode="toc"/>

   </TOC>

   <xsl:apply-templates select="@*|node()"/>

  </PLANETS>

 </xsl:template>


 <xsl:template match="PLANET" mode="toc">

  <ENTRY>

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

  </ENTRY>

 </xsl:template>


 <xsl:template match="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>

</xsl:stylesheet>

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, выводящий planets.xml с ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ:

<?xml version="1.0" encoding="UTF-8"?>

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

<PLANETS>

 <TOC>

  <ENTRY>Mercury</ENTRY>

  <ENTRY>Venus</ENTRY>

  <ENTRY>Earth</ENTRY>

 </TOC>

 <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><!--Π’ ΠΏΠ΅Ρ€ΠΈΠ³Π΅Π»ΠΈΠΈ->

 </PLANET>

 .

 .

 .

</PLANETS>

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрСли Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ созданию ΠΏΠΎΠ»Π½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ XPath. Π₯отя Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этой Ρ‚Π΅ΠΌΠΎΠΉ ΠΏΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π° Π² Π³Π»Π°Π²Π΅ 4, Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΅Ρ‰Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсьма Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ.

Π“Π»Π°Π²Π° 7 

Π Π°Π±ΠΎΡ‚Π° с XPath

Π’ Π³Π»Π°Π²Π΅ 4 Π±Ρ‹Π»ΠΎ объяснСно, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ match Ρ‚Π°ΠΊΠΈΡ… элСмСнтов, ΠΊΠ°ΠΊ <xsl:template>. ΠžΠ±Ρ€Π°Π·Ρ†Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ подмноТСством ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ языка XPath, ΠΈ Π² этой Π³Π»Π°Π²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна полная вСрсия XPath.

ВыраТСния XPath ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Π² XSLT Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ±Ρ€Π°Π·Ρ†Π°Ρ… Π²Ρ‹Π±ΠΎΡ€Π°, Π½ΠΎ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… прилоТСниях: Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ select элСмСнтов <xsl:apply-templates>, <xsl:value-of>, <xsl:for-each>, <xsl:param>, <xsl:variable>, <xsl:with-param>, <xsl:copy-of> ΠΈ <xsl:sort>, Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ test элСмСнтов <xsl:if> ΠΈ <xsl:when>, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ value элСмСнта <xsl:number> ΠΈ Π² ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°Ρ… ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π°. На этот счСт Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… сомнСний: ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ XPath, Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ XSLT, ΠΈ вся эта Π³Π»Π°Π²Π° посвящСна созданию Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ XPath ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ.

ЀактичСски ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с выраТСниями XPath начиная с Π³Π»Π°Π²Ρ‹ 1, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ познакомились с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ select Π² элСмСнтах <xsl:apply-templates> ΠΈ <xsl:value-of>:

<?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>

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

  <TR>

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

   <TD><xsl:apply-templates select="MASS"/></TD>

   <TD><xsl:apply-templates select="RADIUS"/></TD>

   <TD><xsl:apply-templates select="DAY"/></TD>

  </TR>

 </xsl:template>


 <xsl:template match="MASS">

  <xsl:value-of select="."/>

  <xsl:text> </xsl:text>

  <xsl:value-of select="@UNITS"/>

 </xsl:template>


 <xsl:template match="RADIUS">

  <xsl:value-of select="."/>

  <xsl:text> </xsl:text>

  <xsl:value-of select="@UNITS"/>

 </xsl:template>


 <xsl:template match="DAY">

  <xsl:value-of select="."/>

  <xsl:text> </xsl:text>

  <xsl:value-of select="@UNITS"/>

 </xsl:template>

</xsl:stylesheet>

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ XPath

Π₯отя ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ для обращСния ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Β«.Β» Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ select, Β«.Β» Π½Π΅ являСтся допустимым ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ Π²Ρ‹Π±ΠΎΡ€Π°: это сокращСниС XPath для self::node(). ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ двумя осями: Ρ€Π΅Π±Π΅Π½ΠΊΠ° ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π½ΠΎ Π² XPath Ρ‚Ρ€ΠΈΠ½Π°Π΄Ρ†Π°Ρ‚ΡŒ осСй, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ self. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим всС эти оси ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

Говоря Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, XPath позволяСт Π²Π°ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² β€” это язык, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для адрСсации Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй Ρ‚Π°ΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ XPath Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅, с ΠΊΠ°ΠΊΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ W3C Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ XPath: 

«Основная Π·Π°Π΄Π°Ρ‡Π° XPath β€” Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° XML. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этой ΠΏΠ΅Ρ€Π²ΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт основныС срСдства опСрирования строками, числами ΠΈ логичСскими значСниями. XPath ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ XML синтаксисом для облСгчСния Π΅Π³ΠΎ примСнСния Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… URI ΠΈ значСниях Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² XML. XPath Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с абстрактной, логичСской структурой XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π° Π½Π΅ с Π΅Π³ΠΎ внСшним синтаксисом. XPath ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» своС имя благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ иСрархичСской структурС XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нотация ΠΏΡƒΡ‚ΠΈ (path), ΠΊΠ°ΠΊ Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… URIΒ».

Π­Ρ‚Π° Ρ†ΠΈΡ‚Π°Ρ‚Π° взята ΠΈΠ· спСцификации XPath 1.0. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ, хотя основной Ρ†Π΅Π»ΡŒΡŽ XPath являСтся адрСсация частСй XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ синтаксис для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками, числами ΠΈ логичСскими (true/false) значСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, сам ΠΏΠΎ сСбС ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½.

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ стандартом являСтся XPath вСрсии 1.0, Π½ΠΎ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ трСбования для XPath 2.0. Пока Π΅Ρ‰Π΅ Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² XPath 2.0, Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ список Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ W3C ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΡƒΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ±Π·ΠΎΡ€ этого списка. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ источники XPath Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² Π΄Π²ΡƒΡ… мСстах:

β€’ ΡΠΏΠ΅Ρ†ΠΈΡ„икация XPath 1.0. XPath примСняСтся для поиска ΠΈ указания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ элСмСнтов Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… XML для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. www.w3.org/TR/xpath;

β€’ Ρ‚рСбования XPath 2.0. XPath обновляСтся ΠΈ Π² Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ XSLT 2.0 β€” Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° схСм XML. www.w3.org/TR/xpath20req.