[英]add class for all children
I have some html,.. for example: 我有一些HTML,例如:
<div id='mainDiv'>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div><span>text</span></div>
<div><span>another text</span></div>
<p>lalala</p>
</div>
How I can to foreach all childs from mainDiv
and add some data-attr
in every children 我该如何从mainDiv
所有孩子,并在每个孩子中添加一些data-attr
HtmlNode mainDiv = document.DocumentNode.SelectSingleNode("//div[@id='mainDiv']");
Alternative just iterate over the children 替代方案只是遍历孩子
class Program
{
static void Main(string[] args)
{
HtmlDocument document = new HtmlDocument();
document.Load("Demo.html");
HtmlNode mainDiv = document.DocumentNode.SelectSingleNode("//div[@id='mainDiv']");
foreach (var child in mainDiv.ChildNodes)
{
if (child.Attributes.Any(att=> att.Name == "class"))
{
child.Attributes["class"].Value = "data-attr";
}
else
{
child.Attributes.Add("class", "data-attr");
}
}
document.Save("Demo.html");
}
}
Or all descendants: 或所有后代:
class Program
{
static void Main(string[] args)
{
HtmlDocument document = new HtmlDocument();
document.Load("Demo.html");
HtmlNode mainDiv = document.DocumentNode.SelectSingleNode("//div[@id='mainDiv']");
foreach (var child in mainDiv.Descendants())
{
if (child.Attributes.Any(att=> att.Name == "class"))
{
child.Attributes["class"].Value = "data-attr";
}
else
{
child.Attributes.Add("class", "data-attr");
}
}
document.Save("Demo.html");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.