仅清除内部文本而不是子节点

时间:2010-03-26 13:47:48

标签: c# xml

我有一个xml如下

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

这里ImageValue1存在于两个地方。我想删除作为父节点的Image节点的innerText。我正在使用下面的代码

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

但这也是清除子节点。请让我知道如何清除此测试。寻找通用解决方案。

2 个答案:

答案 0 :(得分:3)

我相信您需要做的只是选择Image节点的 text 节点。你这样做:

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

我刚刚测试了上面的代码,它对我有用。祝你好运!

答案 1 :(得分:1)

尝试做:  customImageNode.Value= string.empty;

更新: 抱歉这个错误。它应该是这样的:customImageNode.RemoveChild(customImageNode.FirstChild);,因为在这种情况下节点的内部文本是它的第一个孩子。我已经检查了它并且有效。