Очистка только внутреннего текста, а не дочерних узлов - PullRequest
0 голосов
/ 26 марта 2010

У меня есть xml, как показано ниже

< Image>ImageValue1
  <Type>png</Type>
  <Value>ImageValue1</ Value>
</ Image>

Здесь ImageValue1 присутствует в двух местах. Я хочу удалить innerText для узла Image, который является родительским. Для которого я использую следующий код

XmlNode customImageNode = imagedoc.SelectSingleNode("//Image");
customImageNode.InnerText = string.empty;

Но это также очищает и дочерние узлы. Пожалуйста, дайте мне знать, как убрать этот тест. Ищем универсальное решение.

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

Я считаю, что вам нужно просто выбрать текст узел Image. Вы делаете это так:

XmlNode customImageNodeTextNode = imageDoc.SelectSingleNode("//Image/text()");
customImageNodeTextNode.InnerText = string.Empty;

Я только что протестировал приведенный выше код, и он работал для меня. Удачи!

1 голос
/ 26 марта 2010

попробуйте сделать: customImageNode.Value= string.empty;

Обновление: Извините за ошибку. Предполагается, что это так: customImageNode.RemoveChild(customImageNode.FirstChild);, поскольку внутренний текст узла в этом случае является его первым дочерним элементом. Я проверил, и это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...