</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.