HTMLAgilityPack을 사용하여 C #으로 응용 프로그램을 만들고 있습니다.
다음 HTML 구조가 있습니다.
<td colspan="3">
<a href="tournament_detail.asp?EID=3">The North West Junior Champions League 2016</a>
<br>
St Bedes Sports Fields, Manchester. M21 0TT</td>
</td>
주소를 빼고 싶습니다 <a>
.<br />
나는 다음을 시도했다 :
//div[@class='infobox']/table/tr/td[1][not a]
HTMLAgilityPack을 사용하고 있으므로 string () 함수를 사용할 수 있다고 생각하지 않습니다 (또는 시도 할 때 최소한 예외가 발생합니다). 내가 그것을 사용할 수 있는지에 대한 설명을 구하고 있으므로 이것을 중복으로 표시하지 마십시오.
주소 만 되돌릴 수있는 방법은 무엇입니까?
술어를 추가 [not(a)]
하면 XPath가 원하는 결과가 아닌 <td>
child가없는 요소 만 반환합니다 <a>
. 대신 선택한 항목에서 비어 있지 않은 직접 자식 텍스트 노드 를 /text()[normalize-space()]
반환 할 추가 합니다 .<td>
var raw = @"<td colspan='3'>
<a href='tournament_detail.asp?EID=3'>The North West Junior Champions League 2016</a>
<br>
St Bedes Sports Fields, Manchester. M21 0TT</td>";
var doc = new HtmlDocument();
doc.LoadHtml(raw);
var td = doc.DocumentNode.SelectSingleNode("//td/text()[normalize-space()]");
Console.WriteLine(td.InnerText.Trim());
출력 :
St Bedes Sports Fields, Manchester. M21 0TT
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다