Announcement

Collapse
No announcement yet.

Xpath Neuling - mein Versuch klappt fast, aber merkwürdiges Verhalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Xpath Neuling - mein Versuch klappt fast, aber merkwürdiges Verhalten

    Aus diesem Code versuche ich den Titel des Span Title Tags auszulesen, aber ich kann mich auf den Kopf stellen, es kommt immer ein Leerstring raus

    Code:
    <td class="cellstd" style='height:1.5;margin-bottom:0px'>
        <p class="tdleftbold" >
          <span title='[email protected]<br>&nbsp;' style='cursor: help;'>
    		mustermann@apoth...&nbsp;<br>
          </span>
        </p>
    </td>
    Meine Versuche:
    *[2]/p/span/attribute::* - Ergebnis: gibt mir den Style (also 'cursor: help')
    *[2]/p/span/attribute::style - Ergebnis: gibt mir den Style (also 'cursor: help')
    *[2]/p/span/attribute::*[1] - Ergebnis: gibt mir den Style (also 'cursor: help')
    *[2]/p/span/attribute::title - Leerstring
    *[2]/p/span/attribute::*[0] - Leerstring
    *[2]/p/span/@title - Leerstring

    Bin mir sicher, dass es ein Leerstring ist und nicht einfach durch das '<br>' falsch angezeigt, weil stringlength = 0

    Also, er erkennt, da sind zwei Attribute, das erste müsste nach meiner Logik das Title Attribut sein, aber es ist einfach leer.

    Achja, ich probiere das in der Chrome Extension "Scraper".

  • #2
    Mit XPath ist der Index 1-basiert, der Versuch mit [0] sollte also ohnehin nichts finden. Auch ist die Reihenfolge von Attributen im Baum, mit dem XPath arbeitet, nicht unbedingt die, die sich im Quellcode findet.

    attribute::title bzw. @title sollte aber schon das entsprechende Attribut selektieren. Was gibt denn
    Code:
    count(*[2]/p/span/@title)
    aus?

    Ansonsten ist aus XML und üblicher XPath-Sicht das Eingabedokument kein XML (
    Code:
     title='[email protected]<br>&nbsp;'
    ), da in einem Attributwert das "<" maskiert werden müsste, damit ist ohnehin schwierig zu sagen, wie die Baumstruktur aussieht, auf der XPath operiert.

    Comment


    • #3
      Danke Martin, das war's auch schon

      ich wunder mich nur, dass
      *[2]/p/span/attribute::*[2] - Ergebnis: guuuut
      *[2]/p/span/attribute::title - Ergebnis: schlääächt (sprich Leerstring)

      count(*[2]/p/span/@title) gibt übrigens 0 aus, also kennt er das Attribut zwar, aber nicht unter dem Namen 'title'.

      gibt ja sicher ne Möglichkeit den Namen von attribute::*[2] rauszubekommen, aber ist nicht wirklich wichtig

      Gruß
      Martin
      Zuletzt editiert von Kukulcan; 26.09.2012, 11:58.

      Comment


      • #4
        Was den Namen angeht, per
        Code:
        name(*[2]/p/span/attribute::*[2])
        sollte das funktionieren.

        Comment


        • #5
          Originally posted by Martin Honnen View Post
          Was den Namen angeht, per
          Code:
          name(*[2]/p/span/attribute::*[2])
          sollte das funktionieren.
          tiptitle

          Comment

          Working...
          X