我想使用Html Agility Pack解析HTML代碼。是否有任何教程可用,或有人可以告訴我如何從<td>
沒有Id和沒有課程的文本?從沒有ID或類名的元素中獲取文本
<table id="results-table">
<tr class="row1">
<td>Diode Zener Single 12V 5% 1W 2-Pin DO-41 Bulk</td>
...
每行包含10個不同的<td>
。謝謝!
我想使用Html Agility Pack解析HTML代碼。是否有任何教程可用,或有人可以告訴我如何從<td>
沒有Id和沒有課程的文本?從沒有ID或類名的元素中獲取文本
<table id="results-table">
<tr class="row1">
<td>Diode Zener Single 12V 5% 1W 2-Pin DO-41 Bulk</td>
...
每行包含10個不同的<td>
。謝謝!
您可以嘗試使用此XPATH
查詢您的table
內的所有td
小號有id="results-table"
//table[@id='results-table']/tr/td
Firepath爲Firefox可以幫助你制定XPATH,你可以從那裏操縱它。下面
HtmlDocument doc = new HtmlDocument();
var fileName = @"..\..\..\docs\10960189.htm";
doc.Load(fileName);
var nodes = doc.DocumentNode.SelectNodes("//table[@id='results-table']/tr/td");
foreach (var node in nodes)
{
Debug.WriteLine(node.InnerText);
}
HTH
我猜你的一些TD標籤將有類/ ID。使用下面的代碼。我寫在linqpad
void Main()
{
var webGet = new HtmlAgilityPack.HtmlDocument();
//web page/string that need to be parsed
webGet.LoadHtml(@"<table id='results-table'>" +
"<tr class='row1'>" +
"<td class='testclass'>test td with class</td>" +
"<td id='testid'>test td with id</td>" +
"<td>Diode Zener Single 12V 5% 1W 2-Pin DO-41 Bulk</td>" +
"<td>test td without class or id</td>" +
"<tr/>"
);
var tableOnPage = (from tds in webGet.DocumentNode.Descendants()
where lnks.Name == "td" &&
lnks.Attributes["class"] == null && tds.Attributes["id"] == null &&
tds.ParentNode.InnerText.Trim().Length > 0 && lnks.InnerText.Trim().Length > 0
select new
{
td = tds.DescendantNodes().SingleOrDefault().InnerHtml.Trim(),
});
//looping through each items
foreach (var item in tableOnPage)
{
Console.WriteLine(item.td);
}
}
輸出將被
二極管單齊納12V 5%1W 2針DO-41散裝
測試TD而不類或ID
Iwant到添加每行包含10個不同的td – user1444921
如果你有問題的更新,請編輯它並添加它們不要把它作爲將來的評論。 –