Звоните t.ToString()
вместо Value
. Это вернет XML в виде строки. Вы можете использовать перегрузку, используя SaveOptions, чтобы отключить форматирование. Я не могу проверить прямо сейчас, но я подозреваю, что он будет включать тег элемента (и элементы), так что вам придется удалить это.
Обратите внимание, что если ваш HTML не является допустимым XML, вы в итоге получите неверный общий XML-файл.
Формат файла XML полностью вне вашего контроля? Было бы лучше, если бы любой внутренний HTML-код был закодирован в формате XML.
РЕДАКТИРОВАТЬ: Один из способов избежать получения внешней части может быть сделать что-то вроде этого (в отдельном методе, вызванном из вашего запроса, конечно):
StringBuilder builder = new StringBuilder();
foreach (XNode node in element.Nodes())
{
builder.Append(node.ToString());
}
Таким образом, вы получите HTML-элементы с их потомками и вкрапленными текстовыми узлами. Я полагаю, что это эквивалент InnerXml.