gpt4 book ai didi

c# - 将 LINQ To XML 用于 HTML 页面的更好方法

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:43 24 4
gpt4 key购买 nike

我正在寻找网页上的特定项目。我所做的(到目前为止测试)工作正常,但在我看来真的很难看。我想获得以更简洁的方式执行此操作的建议,即现在是一个 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”,但我希望能够在这些页面中获取其他类型的项目,例如链接和一些文本。

我强烈怀疑这是最好的方法!

最佳答案

同一个查询逻辑:

var myElements = from element in document.fullPage.Descendants(xmlns + "div")
where element.Attribute("id") != null
&& element.Attribute("id").Value == "maincolumn"
from item in new XDocument(element).Descendants(xmlns + "img")
where !String.IsNullOrEmpty(item.Attribute("src").Value.Trim())
select item;

关于c# - 将 LINQ To XML 用于 HTML 页面的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13183026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com