Wie verwenden Sie die --option "Muster" von xmllint?
Ich versuche zu sehen, wie libxml implementiert die XPath-Unterstützung, so dass es Sinn machte, um mich zu testen, mit xmllint. Doch die offensichtliche option, --Muster, ist etwas dunkler, und ich am Ende mit etwas wie die folgenden:
test.xml: <foo><bar/><bar/></foo>
> xmllint --shell test.xml
/ > dir /foo
ELEMENT foo
/ > dir /foo/*
ELEMENT bar
ELEMENT bar
Diese scheint zu funktionieren, und das ist großartig, aber ich bin immer noch neugierig. Was ist xmllint --option "Muster" und wie funktioniert es?
Bieten ein Beispiel für den vollen Kredit. =)
InformationsquelleAutor der Frage Matthew Lowe | 2010-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Hinweis wird in die Worte "die verwendet werden können mit der reader-Schnittstelle zum parser": xmllint verwendet nur die reader-Schnittstelle, wenn bestanden --stream option:
InformationsquelleAutor der Antwort npostavs
Scheinbar undokumentierte option --xpath scheint zu sein, nützlich.
InformationsquelleAutor der Antwort l0st3d
Aus der xmllint(1) man-Seite:
Er versteht nur eine Untermenge von XPath und seine Absicht ist es, um Hilfe zu Debuggen. Die Bibliothek, die nicht verstehen, XPath voll ist libxslt(3) und seine eigenen Kommandozeilen-tool xsltproc(1).
Dem `Muster" - Modul in libxml "ermöglicht das kompilieren und testen von Muster-Ausdrücke für die Knoten entweder in einem Baum oder basierend auf einem parser-Zustand" und die Dokumentation lebt hier: http://xmlsoft.org/html/libxml-pattern.html
Ari.
InformationsquelleAutor der Antwort iter
Wenn Sie wollen einfach nur die text-Wert von einer Reihe von xml-Knoten, dann könnten Sie so etwas wie dieses (wenn --xpath ist nicht auf Ihre version von xmllint):
InformationsquelleAutor der Antwort Sean