2017-11-22 18 views
2

나는 선택이 같이했습니다 : 나는 내 텍스트가있는 경우에만 옵션을 얻을 필요가특정 시작 위치에서 옵션을 가져 옵니까?

<select class="foo"> 
    <option></option> 
    <option>item1</option> 
    <option>item2</option> 
</select> 

, 그래서 첫 번째 옵션을 건너 뛰고 얻을 필요가 유일한 Item1Item2

내가 무슨 짓을했는지

var opts = doc.DocumentNode.SelectNodes("//select[@class='foo']//option"); 

물론 3 가지 옵션이 반환됩니다. 어떻게해야합니까? 감사.

+0

당신이 opts''을 반복하고 확인하여 그것을 할 수는 또는 그것이 null이고 단순히 그것을 건너 뛰고 값을 가진 나머지는 어떤 종류의 콜렉션이나 배열을 추가합니다. 또한, 좋은 html 파서가 있습니다 : http://html-agility-pack.net/?z=codeplex –

+0

@ HarunĆerim 이미'Html Agility Pack'을 사용하고 있습니다. 필자는 내부에 텍스트 옵션 만 가져야합니다. 그건 반복 가능하지만, 내가 요구 한 것이 아닙니다. Linq이 제공 한'.Skip (1)'을 사용하려고했으나'Html Agility Pack' 프레임 워크의 모든 속성을 잃어 버렸습니다. – pivutali

답변

1

근무 XPath는 :

"//select[@class='foo']//option[string-length(text()) > 0]" 
+0

nice, thanks very much :) – pivutali

1

이 XPath를 더 빨리 작동 할 필요 없음 계산이 없기 때문에 : 현재 옵션 값이있는 경우

"//select[@class='foo']//option[text()]"