Как удалить текст из XmlNode? - PullRequest
0 голосов
/ 16 апреля 2009

Допустим, у меня есть XmlNode:

<A>1</A>

Как удалить из него текст, чтобы я получил:

<A />

вместо:

<A></A>

Ниже приведен модульный тест, который показывает, что я пробовал до сих пор.

  [Test]
  public void RemoveXmlTextTest()
  {
     string xmlString = @"<B><A>1</A></B>";         
     XmlDocument doc = new XmlDocument();
     doc.LoadXml(xmlString);
     XmlNode testNode = doc.SelectSingleNode("//A");

     //1. Set innerText to string.Empty - not working
     //testNode.InnerText = String.Empty;

     //2. Call removeAll - not working         
     //testNode.RemoveAll();

     //3. testNode has one child with name '#text' - remove it - not working
     //testNode.RemoveChild(testNode.FirstChild);

     //4. Replace node with a new empty one - working but extremally ugly :(
     //All references to testNode still points to the old one !!!!
     testNode.ParentNode.ReplaceChild(doc.CreateElement(testNode.Name), testNode);

     //Is there some better way to do it?

     testNode = doc.SelectSingleNode("//A");
     Assert.AreEqual("<A />", testNode.OuterXml);
  }

1 Ответ

2 голосов
/ 16 апреля 2009

Вы пробовали установить XmlElement.IsEmpty в значение true?

(Очевидно, это означает приведение к XmlElement, но это единственная ситуация, в которой вопрос имеет смысл.)

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