Ich muss alle Kindknoten (Optionstag) aus diesem HTML auswählen:
<select name="akt-miest" id="onoffaci">
<option value="a_0">Všetci</option>
<option value="a_1">Iba prihlásenÃ</option>
<option value="a_5" selected="selected">Teraz na Pokeci</option>
<optgroup label="Hlavné miestnosti">
<option value="m_13"> Bez záväzkov</option>
<option value="m_9"> Do pohody</option>
<option value="m_39"> Dámsky klub</option>
</optgroup>
Ich benutze Html Agility Pack.
Ich versuche das:
var selectNode = htmlDoc.GetElementbyId("onoffaci");
var nodes = selectNode.SelectNodes("option::*");
aber ich bekomme Fehler, dass Xpath ungültiges Token hat. Was ist schlecht?
Beispielsweise:
<option value="**a_0**">**Všetci**</option>
Ich brauche Wert (a_0) und Text Všetci.
Also versuche ich zuerst den Zugang zur Auswahl per Id:
Ich versuche das:
var selectNode = htmlDoc.GetElementbyId("onoffaci"); var nodes = selectNode.SelectNodes("option::*");
aber ich bekomme Fehler, dass Xpath ungültiges Token hat. Was ist schlecht?
Das offensichtliche Problem ist die Verwendung von
option::*
option::*
bedeutet: Alle Knoten in der Achse "Option". Allerdings gibt es keine "Option Achse in XPath"
Du willst :
option
Dadurch werden alle option
, die option
Elemente des aktuellen Knotens sind.
Sie können dies in einen einzelnen XPath-Ausdruck schreiben und den Aufruf getElementbyId()
weglassen:
//select[@id='onoffaci']/option
For example:
<option value="**a_0**">**Všetci**</option>
I need get value (a_0) and text Všetci
Verwenden :
//select[@id='onoffaci']/option/@value
|
//select[@id='onoffaci']/option/text()
Damit werden alle value
Attribute aller option
Elemente , die Kinder aller sind select
Elemente in dem XML - Dokument , das eine haben id
- Attribut mit dem Wert 'onoffaci'
und auch alle Textknoten aller option
Elemente , die Kinder aller sind select
Elemente im XML - Dokument die ein id
Attribut mit dem Wert 'onoffaci'
.
Sie müssen die Ergebnisse iterieren, um den @value
und text()
für jedes option
.
Oder:
//select[@id='onoffaci']/option[1]/@value
|
//select[@id='onoffaci']/option[1]/text()
Hier verwenden Sie die Beobachtung, dass das option
, an dem Sie interessiert sind, das erste option
des übergeordneten Elements ist - jetzt werden nur das Attribut value
und die Textknoten des gewünschten option
.