HTMLAgilityPack 및 분리 <br/>

html-agility-pack

문제

나는에 의해 분리되어 일부 HTML,이 <br/> 예를 :

Jack Janson
<br/>
309 123 456
<br/>
My Special Street 43

3 열의 정보를 검색하는 가장 쉬운 방법은 무엇입니까?

나는 XPath 전문가가 아니기 때문에 줄 바꿈에서 문자열을 분리하고 배열과 함께 작업하는 것이 좋습니다. 그것을하는 더 똑똑한 방법이 있습니까?

업데이트 : 코드 서식을 잊어 버렸습니다.

수락 된 답변

XML을 통한 순수한 XPATH에서는 //preceding-sibling::br 또는 //following-sibling::br 와 같은 XPATH 표현식을 사용합니다 ( XPATH 축 에 대한 도움말은 여기를 참조하십시오)

하지만, HTML 구현에 대한 XPATH는 Html Agility Pack에서 XPATH 선택 표현식 ( //br/text() 또는 //br/@blah 에서 순수 텍스트 노드 또는 (특성 노드)를 지원하지 않습니다. 예). 필터는 필터에서 작동하므로 //br[text()='blah'] 또는 //br[@att='blah'] 작동합니다.

그래서 질문으로 돌아 가면 XPATH와 코드를 결합해야합니다.

HtmlDocument doc = new HtmlDocument();
doc.Load(myHtmlFile);

foreach (HtmlNode p in doc.DocumentNode.SelectNodes("//br"))
{
    Console.WriteLine(p.PreviousSibling.InnerText.Trim());
}

그러면 출력됩니다.

HtmlDocument doc = new HtmlDocument();
doc.Load(myHtmlFile);

foreach (HtmlNode p in doc.DocumentNode.SelectNodes("//br"))
{
    Console.WriteLine(p.PreviousSibling.InnerText.Trim());
}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.