我正在使用(我们正在使用.Net 2.0)将一些X元素添加到Root元素
xnode.AppendChild(parentINode);
xnode.AppendChild(config.CreateTextNode("\r\n"));
//then removeing all added elements using
xnode.ParentNode.RemoveChild(xnode);
这将添加一个空格,我想删除通过添加元素添加的空格,同时删除子节点。
我的原始文件如下所示:
<c123:Images State="ARASU">
<!-- Names-Images -->
</c123:Images>
我们将添加一些元素:
<c123:Images State="ARASU">
<!-- Names-Images -->
<Name place=123>
<Name place=1234>
</c123:Images>
然后我们将删除元素:然后它看起来如下
<c123:Images State="ARASU">
<!-- Names-Images -->
</c123:Images>
这里我们得到的空格数等于添加的元素数,我们要删除/避免删除子节点后创建的空格。
谢谢&amp;问候,
Channabasappa M
答案 0 :(得分:0)
您可以使用此扩展方法:
public static void RemoveEmptyElementsAndWhiteSpaces(this XDocument document)
{
if(null == document)
throw new ArgumentNullException("document");
document.Descendants()
.Where(e => e.IsEmpty || string.IsNullOrWhiteSpace(e.Value))
.Remove();
}
编辑:如果您使用的是XmlDocument类,也许可以将PreserveWhiteSpace属性设置为false?
答案 1 :(得分:0)
我只是遍历XML标记然后通过检查
删除了空格 //Removing whitespace created
if (xnode.NextSibling != null && xnode.NextSibling.NodeType == XmlNodeType.Whitespace)
{
xnode.ParentNode.RemoveChild(xnode.NextSibling);
}