我有一个xelement是基本的html,我想快速遍历段落标签的所有元素并设置样式属性或附加到它。我正在做下面的事情,但它没有改变主要的元素。我怎样才能做到这一点?
XElement ele = XElement.Parse(body);
foreach (XElement pot in ele.DescendantsAndSelf("p"))
{
if (pot.Attribute("style") != null)
{
pot.SetAttributeValue("style", pot.Attribute("style").Value + " margin: 0px;");
}
else
{
pot.SetAttributeValue("style", "margin: 0px;");
}
}
答案 0 :(得分:5)
只需使用Value
属性 - 您可以检索并使用它设置属性值。只添加一个属性可以多做一些工作 - 您使用Add()
方法并传递XAttribute
的实例:
if (pot.Attribute("style") != null)
{
pot.Attribute("style").Value = pot.Attribute("style").Value + " margin: 0px;";
}
else
{
pot.Add(new XAttribute("style", "margin: 0px;"));
}
看起来好像你实际编辑HTML(虽然我可能会误会) - 在这种情况下要注意大多数HTML在浏览器中运行正常不有效的XML - 在这种情况下你应该使用HTML的解析器,例如HtmlAgilityPack这会在这方面做得更好。