문제

XMLDocument를 사용하여 XHTML 문자열을 구문 분석하고 조작하여 일부 노드를 비 HTML 노드로 변환합니다.

주어진 클래스 이름을 가진 모든 노드 목록을 얻는 가장 좋은 방법은 무엇입니까? XPath로 할 수 있습니까?

도움이 되었습니까?

해결책

주어진 수업으로? 단지 한 클래스라면 .selectnodes ( "//*[@class = 'foo'])와 같은 것을 할 수 있어야합니다. xhtml이 아니라면 HTML 민첩성 팩 볼 가치가 있습니다.

클라이언트에서는 jQuery가 좋은 옵션이 될 것이며 복합 클래스 이름을 지원합니다.

개별 요소에 여러 클래스 이름이 있고 서버에서 처리 해야하는 경우 후보 클래스를 먼저 찾아야 할 것으로 예상됩니다 ( "//*[@class! = '']). a Split() 결과에서 클래스 이름을 확인합니다. 즉, 수동으로 분리합니다.

LINQ 용어로 :

        var qry = from XmlElement el in d.SelectNodes("//*[@class!='']")
                  let classes = el.GetAttribute("class").Split(new[] {' '},
                          StringSplitOptions.RemoveEmptyEntries)
                  where classes.Contains("foo")
                  select el;

다른 팁

예, XPath에서 쉽습니다.

//*[@class='foo']
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top