我正在寻找网页上的特定项目。我所做的(测试,到目前为止)工作得很好,但对我来说真的很难看。我想以更简洁的方式获得建议,即现在是 ONE Linq 查询而不是 2 ....
document.GetXDocument();
string xmlns = "{http://www.w3.org/1999/xhtml}";
var AllElements = from AnyElement in document.fullPage.Descendants(xmlns + "div")
where AnyElement.Attribute("id") != null && AnyElement.Attribute("id").Value == "maincolumn"
select AnyElement;
// this first query bring only one LARGE Element.
XDocument subdocument = new XDocument(AllElements);
var myElements = from item in subdocument.Descendants(xmlns + "img")
where String.IsNullOrEmpty(item.Attribute("src").Value.Trim()) != true
select item;
foreach (var element in myElements)
{
Console.WriteLine(element.Attribute("src").Value.Trim());
}
Assert.IsNotNull(myElements.Count());
我知道我可以直接查找“img”,但我希望能够在这些页面中获取其他类型的项目,例如链接和一些文本。
我强烈怀疑这是最好的方法!