2013-03-01 4 views
0

문자열 '/ 그룹 /'내 경우에는, 특정 문자열을 포함하는 href 속성이 'A'노드 HTML을 찾기 위해 시도 소스 코드는 약 20 개의 노드를 포함하고 있습니다. 위의 코드는 아무 것도 반환하지 않습니다. 그러면 내가 잘못했을 수도 있습니다.XPath를 HTML 찾는 노드

내가 옳은 일인지, 특정 문자열을 포함하는 값을 가진 특정 속성을 가진 노드를 어떻게 선택할 수 있습니까?

+0

가 타겟팅하는 XML을 추가하십시오 : 당신이 StringComparison.OrdinalIgnoreCase에 LINQ를 사용할 수있는 또 다른 옵션으로

//a[contains(translate(@href, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '/groups/')]

JWiley

답변

0

당신의 표현이 저처럼 옳은 것 같습니다.

원본 문서 (또는 그 일부)를 게시하지 마십시오. 그래서, 나는 추측 할 것입니다.

문제는 대소 문자를 구분하지 않고 비교하면 xpath가 멋지다는 것입니다. 예를 들어 href 속성이 포함 된 <a> 태그가있는 경우 /Groups/ 또는 /GROUPS/ 인 경우 일치하지 않습니다. 이것에 대한 workaround 있습니다 :

source.DocumentNode.Descendants("a") 
    .Where(a => a.GetAttributeValue("href", string.Empty) 
        .IndexOf("/groups/", StringComparison.OrdinalIgnoreCase) != -1 
); 
관련 문제