Boolesche: Mittels XPath src der img-tags ausgeben lassen?

Hallo,
ich verzweifle gerade an xpath....

Möchte mir nur den Wert von src aller img eines Dokumentes ausgeben lassen, also nur die URL.

Mit  .addRequestItem("//img[@src]"); gibt er mir das gesamte img-tag mit allem drum und dran aus.

Wie kann ich es nun bewerkstelligen dass er mit nur die URL der Bilder ausgibt?

Besten Dank im voraus.

  1. Hallo,

    Möchte mir nur den Wert von src aller img eines Dokumentes ausgeben lassen, also nur die URL.
    Mit  .addRequestItem("//img[@src]"); gibt er mir das gesamte img-tag mit allem drum und dran aus.

    (Was bitte ist ".addRequestItem" – was eigenes?)

    Mit "//img[@src]" selektierst Du alle img-Element-Knoten, die einen Attributknoten namens "src" haben. Das Ding in eckigen Klammern ist ein Prädikat, eine Bedingung, die zum Selektieren erfüllt sein muss. Wenn Du Attributknoten haben willst, wäre "//img/@src" richtig.

    Übrigens: In (X)HTML können vorher noch die Auflösungsregeln für relative URLs zum Tragen kommen. Zum Beispiel wärst Du beim einem unter "http://example.com/foo/bar.html" aufgerufenen Dokument und dort beim Element <img src="baz.png"> an der konkreten Bild-URL "http://example.com/bar/baz.png" interessiert. XPath arbeitet aber m.W.n. nur auf der Ebene des reinen Textes im Attribut; es verarbeiten relative URLs nicht wirklich zurück zu absoluten URLs. Dazu kommen noch in HTML das <base>-Element im Kopf und in XHTML theoretisch das überall erlaubte xml:base-Attribut. Die wirklich korrekte Auflösung relativer URLs kann man selber mit XPath nicht leisten – Browser dagegen haben das notwendigerweise nicht integriert. An Deiner Stelle würde ich dann wirklich trotzdem nur nach img-Elementen suchen und bei den DOM-Elementen das DOM-src-Attribut abfragen – dort findet eine automatische Auflösung relativer URLs statt. Dies gilt natürlich nur, wenn Du die Möglichkeit hast, auf DOM-Ebene, z.B. in Javascript zu arbeiten.

    Tim