Web ページで特定のアイテムを探しています。私が(これまでのところテストのために)行ったことは問題なく機能していますが、私の目には本当に醜いです。これをより簡潔な方法で行うための提案を得たいと思います。つまり、2 つではなく 1 つの Linq クエリです....
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」を直接検索できることはわかっていますが、リンクやテキストなど、それらのページで他の種類のアイテムを取得できるようにしたいと考えています。
これが最善の方法であると強く疑います!