| /BOOKLIST/BOOK/TITLE |
| <?xml version="1.0" ?> |
| <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0"> |
| <xsl:template match="/"> |
| <HTML> |
| <HEAD><TITLE>Query Result</TITLE></HEAD> |
| <BODY> |
| <UL> |
| <xsl:apply-templates select="/BOOKLIST/BOOK/TITLE"/> |
| </UL> |
| </BODY> |
| </HTML> |
| </xsl:template> |
| <xsl:template match="@*|node()"> |
| <LI><xsl:value-of select="."/></LI> |
| </xsl:template> |
| </xsl:stylesheet> |
| <?xml version="1.0" ?> |
| <?xml-stylesheet type="text/xsl" href="query_ie.xsl" ?> |
| <BOOKLIST> |
| <BOOK ISBN="0-13-014714-1" PAGES="1074"> |
| <AUTHOR FIRST="Paul" LAST="Prescod"/> |
| <AUTHOR FIRST="Charles" MI="F." LAST="Goldfarb"/> |
| <TITLE>XML: The XML Handbook - 2nd Edition</TITLE> |
| <PUBLISHER DATE="19991112">Prentice Hall</PUBLISHER> |
| <NOTE>Contains CD.</TITLE> |
| </BOOK> |
| <BOOK ISBN="1-56592-709-5" PAGES="107"> |
| <AUTHOR FIRST="Robert" LAST="Eckstein"/> |
| <TITLE>XML Pocket Reference</TITLE> |
| <PUBLISHER DATE="19991001">O'Reilly</PUBLISHER> |
| </BOOK> |
| </BOOKLIST> |
| BOOKLIST/BOOK/AUTHOR/@LAST |
| child::BOOKLIST/child::BOOK/child::AUTHOR/attribute::LAST |
Im Internet Explorer sind über die Abkürzungen nur die Achsen ``child'', ``descendant'', ``attribute'', und ``self'' implementiert. Für ``parent'' gibt es eine Abkürzung (``..''), aber sie scheint vom Internet Explorer nicht verstanden zu werden.
| /BOOKLIST/BOOK[@ISBN='0-13-014714-1']/TITLE |
| /BOOKLIST/BOOK[@ISBN='0-13-014714-1']/TITLE |
| /BOOKLIST/BOOK/AUTHOR[position()=1]/@LAST |
| /BOOKLIST/BOOK/AUTHOR[1]/@LAST |
| /BOOKLIST/BOOK/AUTHOR[0]/@LAST |
Vor der endgültigen Veröffentlichung wurde die XSLT/XPath-Spezifikation aber mehrfach geändert, und die Namespace-URL im Internet Explorer zeigt, daß er sich auf einen früheren ``Working Draft'' bezieht. Es ist möglich, daß damals die Zählung mit 0 begann.
Falls man eine der Achsen ``achestor'', ``anchestor-or-self'', ``preceding'' oder ``preceding-sibling'' gewählt hat wird die Liste von aktuellen Knoten in der umgekehrten Dokument-Ordnung angeordnet, so daß zum Beispiel [1] immer den zum vorigen Start-Knoten am nächsten liegenden Knoten liefert. Im Internet Exporer 5 können diese Achsen allerdings sowieso nicht verwendet werden.
| /BOOKLIST/BOOK/AUTHOR[last()]/@LAST |
| /BOOKLIST/BOOK/AUTHOR[2]/../TITLE |
| /BOOKLIST/BOOK[NOTE]/TITLE |
| /BOOKLIST/BOOK/AUTHOR[last()-1]/@LAST |
| /BOOKLIST/BOOK[@PAGES > 500]/TITLE |
| /BOOKLIST/BOOK[@ISBN='0-13-014714-1']/TITLE |
| /BOOKLIST/BOOK[TITLE='XML Pocket Reference']/AUTHOR |
| /BOOKLIST/BOOK[@PAGES > 500]/TITLE |
| /BOOKLIST/BOOK[AUTHOR/@LAST='Goldfarb']/TITLE |
Im Internet Explorer kann man durch Voranstellen von $all$ und $any$ das gewünschte Verhalten auswählen. Dies ist aber nicht (mehr) im Standard enthalten. Standard-Konform kann man durch not(not(...)) den Allquantor bekommen. not(AUTHOR/@LAST!='Goldfarb') würde ebenfalls sicherstellen, daß Goldfarb einziger Autor ist.
| /BOOKLIST/BOOK[@PAGES>300 and PUBLISHER/@DATE>=19990101]/TITLE |
| /BOOKLIST/BOOK[contains(TITLE, 'Reference')]/TITLE |
| /BOOKLIST/BOOK[contains(AUTHOR/@LAST, 'oldfa')]/TITLE |
| <?xml version="1.0" ?> |
| <MUSIC> |
| <COMPOSER BORN="1678" DIED="1741"> |
| <NAME>Vivalidi</NAME> |
| <PIECE TYPE="Concert">The Four Seasons</PIECE> |
| </COMPOSER> |
| <COMPOSER BORN="1685" DIED="1750"> |
| <NAME>Bach</NAME> |
| <PIECE TYPE="Mass">B-minor Mass</PIECE> |
| <PIECE>Christmas Oratorio</PIECE> |
| </COMPOSER> |
| <COMPOSER BORN="1756" DIED="1791"> |
| <NAME>Mozart</NAME> |
| <PIECE TYPE="Mass">Missa Solemnis</PIECE> |
| </COMPOSER> |
| <COMPOSER BORN="1891" DIED="1953"> |
| <NAME>Prokofiev</NAME> |
| <PIECE TYPE="Symphony">Classical Symphony</PIECE> |
| <PIECE TYPE="Ballet">Cinderella</PIECE> |
| </COMPOSER> |
| <COMPOSER BORN="1841" DIED="1904"> |
| <NAME>Dvorak</NAME> |
| </COMPOSER> |
| </MUSIC> |
Stefan Brass (sbrass@sis.pitt.edu), 22. August 2000
Original URL: http://www.informatik.uni-giessen.de/staff/brass/xml00/c6_xpath.xml