2012-02-09 1 views
0

У меня есть xelement, который является основным html, я хочу быстро пропустить все элементы, которые являются тегами абзаца, и установить атрибут стиля или добавить к нему. Я делаю то, что ниже, но не меняет мастер-элемент. Как я могу сделать эту работу?Изменение XElement, как изменить атрибуты?

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;"); 
     } 
    } 

ответ

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, который будет намного лучше работать на этом.

 Смежные вопросы

  • Нет связанных вопросов^_^