如何检查列表中每个节点的值
可能的重复:
检查每个节点包含另一个列表并且可以更深入的列表
我有节点列表,同样,每个节点都可以是节点列表,并且可以继续更深。 现在我想检查某个字符串(如 html 标签)(没有任何子列表)的所有节点。
我想要这个的伪代码。这不是 C# 列表或 IEnumerater,但我使用 HtmlAgilityPack 遍历网页中的所有 htmlnodes检查特定的 html 标签。
不要将此问题标记为关闭...如果需要更多信息,请添加评论。但我试图编写通用代码...我没有任何 id 可供搜索。
public string GetText(HtmlNode htmlNodeTemp)
{
foreach (HtmlNode hn in htmlNodeTemp.ChildNodes)
{
if (hn.ChildNodes.Count > 1)
{
GetText(hn);
}
if (hn.SelectSingleNode("//p").OuterHtml.Contains("<p>"))
{
if (finalText != null)
{
if (finalText.Length < hn.SelectSingleNode("//p").InnerText.Length)
{
finalText = hn.SelectSingleNode("//p").InnerText;
}
}
else
{
finalText = hn.SelectSingleNode("//p").InnerText;
}
}
}
return finalText;
}
Possible Duplicate:
Check each node in the list which contains another list and can go deeper
I have List of nodes, again each node can be a list of nodes and it can continue to be more deeper. Now I want to check all the nodes for a certain string (like a html tag) (which do not have any child list).
I want the pseudo code for this. This is not a C# List or IEnumerater, But i am using HtmlAgilityPack to traverse all the htmlnodes in the webpage to check for particular html tag.
Don't tag this question as close...Please add a comment if need more information. But I trying to write generic code...I dont have any id's to search with.
public string GetText(HtmlNode htmlNodeTemp)
{
foreach (HtmlNode hn in htmlNodeTemp.ChildNodes)
{
if (hn.ChildNodes.Count > 1)
{
GetText(hn);
}
if (hn.SelectSingleNode("//p").OuterHtml.Contains("<p>"))
{
if (finalText != null)
{
if (finalText.Length < hn.SelectSingleNode("//p").InnerText.Length)
{
finalText = hn.SelectSingleNode("//p").InnerText;
}
}
else
{
finalText = hn.SelectSingleNode("//p").InnerText;
}
}
}
return finalText;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您将需要使用递归解决方案并检查元素是否存在。所以像这样的伪代码:
You're going to want to use a recursive solution and check for the existance of the element. So something like this pseudo code: