Frage

Mit XPath und das HTML Agility Pack Ich brauche den destination Text mit color:#ff00ff auszuwählen.

Meine HTML sieht wie folgt aus:

<table>
   <tr style="color:#ff00ff">
      <td></td>
   </tr>
   <tr>
      <td>destination</td>
   </tr>
   <tr>
      <td></td>
   </tr>
   <tr>
      <td>not destination</td>
   </tr>
</table>
War es hilfreich?

Lösung

/table/tr[@style = "color:#ff00ff"]/following-sibling::tr[1]/td[1]/text()

Wählt den <tr> die style="color:#ff00ff" hat, und von dort geht, wird der Text des ersten <td> Kind des ersten folgenden <tr>.

Für zusätzliche Sicherheit können Sie verwenden:

tr[translate(@style, ' ', '') = "color:#ff00ff"]

Dies entfernt alle Leerzeichen aus dem Attributwert, also die Dinge ein wenig unabhängiger von der HTML-Quelle erhalten.

Andere Tipps

jQuery verwenden, es könnte wie folgt aussehen:

$('tr[style*="color:#ff00ff"]').next('tr').children().text();

Dies ist stark abhängig von Ihrer genauen Dokumentstruktur und Stildefinition, though. Es wird jede tr finden, die einen Stil mit der Zeichenfolge „color: # ff00ff“ hat (genau, keine Leerzeichen, etc.). Aus dieser Reihe wählen sie dann die nächste Geschwisterreihe und die Textinhalte von allen bekommen davon direkte Kinder. In Ihrem Fall wäre dies das einzige Spalte Element sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top