我试图弄清楚如何从节点中删除特定的样式值。
我使用element.Attributes.Remove(element.Attributes["style"]);
删除所有样式,但我只想删除具有特定值的样式。
即。
从
中删除样式<tr style='background-color:rgb(255, 255, 153);'>
但不是来自
<tr style='background-color:rgb(0, 0, 255);'>
我还想在同一个节点上添加一个类。
答案 0 :(得分:1)
您无法使用xpath在HAP中选择属性,您只能选择其元素,因此最好的方法是实际选择具有所需值的属性的元素,例如跟随xpath将选择具有给定值的style属性的所有元素。
//*[@style='background-color:rgb(255, 255, 153);']
所以要走的路是:
var allElementsWithStyleAttributeValue = html.DocumentNode.SelectNodes("//*[@style='background-color:rgb(255, 255, 153);']");
if(allElementsWithStyleAttributeValue!=null)
{
foreach(var el in allElementsWithStyleAttributeValue)
{
el.Attributes.Remove("style");
el.Attributes.Add("class", "youclassvalue");
}
}