Frage

Ich habe mehrere Kombinationen ohne Erfolg ausprobiert. Der vollständige xpath zu diesen Daten ist .//*[@id='detail_row_seek_37878']/td Das Problem ist der Zahlenteil '37878' ändert sich für jeden Knoten und somit kann ich keine foreach benutzen, um die Knoten zu durchlaufen. Gibt es eine Möglichkeit, einen Platzhalter zu verwenden und den xpath auf .//*[@id='detail wildcard Platzhalter .//*[@id='detail zu .//*[@id='detail wildcard , um den absoluten .//*[@id='detail wildcard zu umgehen? Ich verwende html Agility Pack auf diesem.

 HtmlNode ddate = node.SelectSingleNode(".//*[@id='detail_row_seek_37878']/td");

Akzeptierte Antwort

Extrahiere den Teil, der sich nicht ändert:

//*[starts-with(@id, 'detail_row_seek')]/td

Verwandte Techniken und Funktionen

Um Elemente _row_ deren id Attribut die Zeichenfolge _row_ am 7. Zeichen enthält :

//*[substring(@id, 7, 5)='_row_']/td 

Passend Elemente , deren id - Attribut enthält den Text detail_ an einer beliebigen Position:

//*[contains(@id, 'detail_')]/td 

Elemente detail_row_seek deren id Attribut mit dem Text detail_row_seek endet :

//*['detail_row_seek' = substring(@id, 
        string-length(@id) - string-length('detail_row_seek') + 1)]/td 


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum