배열의 HTML 문자열에서 내용을 얻는 방법

c# c#-4.0 html html-agility-pack

문제

일부 html 콘텐츠로 작업하고 있습니다. HTML의 형식은 다음과 같습니다.

<li>
  <ul>
     <li>Test1</li>
     <li>Test2</li>
  </ul>
  Odd string 1
  <ul>
     <li>Test3</li>
     <li>Test4</li>
  </ul>
  Odd string 2
  <ul>
     <li>Test5</li>
     <li>Test6</li>
  </ul>
<li>

html 콘텐츠에는 여러 개의 "홀수 문자열"이있을 수 있습니다. 그래서 나는 모든 "이상한 문자열"을 배열로 원합니다. 쉬운 방법이 있습니까? (나는 C #과 HtmlAgilityPack을 사용하고있다)

수락 된 답변

ul 요소를 선택하고 텍스트가 될 다음 형제 노드를 참조하십시오.

HtmlDocument html = new HtmlDocument();
html.Load(html_file);
var odds = from ul in html.DocumentNode.Descendants("ul")
           let sibling = ul.NextSibling
           where sibling != null && 
                 sibling.NodeType == HtmlNodeType.Text && // check if text node
                 !String.IsNullOrWhiteSpace(sibling.InnerHtml)
           select sibling.InnerHtml.Trim();

인기 답변

~ 같은

MatchCollection matches = Regex.Matches(HTMLString, "</ul>.*?<ul>", RegexOptions.SingleLine);
foreach (Match match in matches)
{
    String oddstring = match.ToString().Replace("</ul>","").Replace("<ul>","");
}



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