Tags, die sich wiederum im Tag befinden.
Beispiel-E-Book:
Ein ganz kurzes E-Book Ein ganz kurzes E-Book
Verfasst von Kovid Goyal
Ein ganz kurzes E-Book an dem die Funktionsweise von XPath demonstriert wird.
Kapitel 1
Ein wirklich faszinierendes Kapitel.
Kapitel 2
Die würdige Fortsetzung von Kapitel 1.
In unserem Beispiel-E-Book werden mit diesem Ausdruck nur Tags wie
Ein ganz kurzes E-Book an dem die Funktionsweise von XPath demonstriert wird.
gefunden. Die anderen
Tags bleiben davon unberührt. h: wird benötigt, um XHTML Tags zu finden. Das liegt daran, dass in Calibre alle Inhalte in XHTML verwaltet werden. In XHTML haben Tags immer einen definierten „Namensraum“ und „h:“ ist das entsprechende Namensraum-Präfix für HTML-Tags.
Sollen nun aber z. B. beide Tags
und ausgewählt werden, muss ein XPath-„Prädikat“ verwendet werden. Bei diesen Prädikaten handelt es sich einfach um Tests. Weiter unten werden sie interessante Beispiele dafür finden. Der Testausdruck wird in eckigen Klammern geschrieben:
//*[name()='h1' or name()='h2']
Diese Zeile enthält mehrere neue Funktionen. Als erstes sehen Sie die Wildcard „ * “. Die Wildcard steht für jede Form von Tag.
Dann haben wir den Testausdruck name()='h1' or name()='h2' . Der Begriff „name()“ ist ein Beispiel für eine eingebaute Funktion, die in diesem Fall einfach den Namen des Tags auswertet. Somit werden Tags aufgespürt, deren Name entweder „h1“ oder „h2“ ist.
Es bleibt zu beachten, dass die Funktion name() Namensräume ignoriert, deshalb ist an dieser Stelle das Präfix „h:“ auch nicht notwendig. XPath bietet einige solche eingebaute Funktionen, von denen wir noch eine Auswahl vorstellen werden.
Auswahl nach Attributen
Um eine Suche nach Attributen von Tags durchzuführen, benötigen wir weitere Prädikate:
//*[@style] Findet alle Tags mit dem Attribut „style“
//*[@class="chapter"] Findet alle Tags mit „class=”chapter”“
//h:h1[@class="bookTitle"] Findet alle „h1“-Tags mit „class=” bookTitle ”“
Der Operator @ bezieht sich auf die Attribute des Tags.
Auswahl nach Tag-Inhalt
Mit XPath können Sie sogar Tags auf Basis ihres Textinhalts auswählen. Am besten funktioniert das mit der eingebauten