【发布时间】:2014-07-13 13:18:47
【问题描述】:
我有以下 HTML:这是文本格式的 html 文件 我正在从本地硬盘读取这个:
"<span style=""font-size:14px;""><span style=""""><strong>Description:</strong><br />
Material:Cotton+Polyester<br />
Color:White-Black<br />
Occasion: Casual<br /><br />
<strong>Details in size:</strong></span></span><br />
<div border=""1"" class=""tab02"" style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; text-align: center; font-size: 14px; font-family: Arial- Helvetica- sans-serif;"" width=""100%"">
<div>
<div style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px;"">
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
US Size</span>
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
M</span>
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
L</span>
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
XL</span>
</div>
<div style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px;"">
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
Asian Size</span>
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
L</span>
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
XL</span>
<span style=""border: 1px dashed rgb(204- 204- 204); border-collapse: collapse; border-spacing: 0px; padding: 5px 10px;"">
2XL</span>
</div>
我需要使用 C# 和 Xpath 获取 innerDiv。 这是我到目前为止所做的:我使用 Xpath 和
string SizeDescriptions = File.ReadAllText(@"E:\Elance\Product Description HTML\HTML_Product_Description.txt");
HtmlDocument document = new HtmlDocument();
string htmlString = SizeDescriptions;// "<html>blabla</html>";
document.LoadHtml(htmlString);
HtmlNodeCollection collection = document.DocumentNode.SelectNodes("//div").FindFirst("div").ChildNodes;
foreach (HtmlNode link in collection)
{
HtmlNodeCollection Sizes = link.SelectNodes("/div/span");
foreach(HtmlNode SizeDiv in Sizes)
{
TableRow tr1 = new TableRow();
TableCell cell1 = new TableCell();
tr1.
}
string target = link.Attributes["href"].Value;
}
【问题讨论】:
-
innerDiv是哪个 div?是类还是 id? -
HTML 不能以引号开头。
-
@AgentFire HTML 可以以任何开头,并且可以包含非平衡引号、标签的任意组合。有效的 HTML(在野外找不到,国家动物园里有物种:))确实不能以引号开头。
-
"//div" 选择整个文档中的所有
div元素...如果您需要帮助,您可能需要描述您需要选择的节点... -
@Uriil 需要在最下面的两个 div 中获取 span 元素的 innerText(可能更多)
标签: c# xpath html-agility-pack