C# AddAfterSelf和带有XDocument的行返回
我有这段代码用于在XDocument对象中复制xml元素C# AddAfterSelf和带有XDocument的行返回,c#,xml,C#,Xml,我有这段代码用于在XDocument对象中复制xml元素 //get a copy of element XElement element = new XElement(this._xmldoc.Descendants(name).LastOrDefault()); //add element this._xmldoc.Descendants(name).LastOrDefault().AddAfterSelf(element); [编辑] 这是我的“保存”方法 // ///用于保存文档的方法
//get a copy of element
XElement element = new XElement(this._xmldoc.Descendants(name).LastOrDefault());
//add element
this._xmldoc.Descendants(name).LastOrDefault().AddAfterSelf(element);
[编辑]
这是我的“保存”方法
//
///用于保存文档的方法
///
///文件路径
公共bool保存(字符串文件路径)
{
//返回值
bool returnValue=true;
//清除空元素
returnValue&=this.CleanEmptyElements();
//规范化xml文本
returnValue&=this.NormalizeDocument();
尝试
{
//保存文档
此.xmldoc.Save(文件路径);
}
捕获(无效操作异常)
{
returnValue=false;
}
//如果保存操作失败
if(!returnValue)
//删除文件
File.Delete(文件路径);
//方法结束
返回值;
}
[/编辑]
我的代码工作得很好,但在重复应用之后,我有一个小问题,我有以下XML:
<?xml version="1.0" encoding="iso-8859-1"?>
<Invoice>
<Party>
<Country>FRANCE</Country>
</Party><Party>
<Country>SPAIN</Country>
</Party>
</Invoice>
<?xml version="1.0" encoding="iso-8859-1"?>
<Invoice>
<Party>
<Country>FRANCE</Country>
</Party>
<Party>
<Country>SPAIN</Country>
</Party>
</Invoice>
法国
西班牙
我想要这个XML:
<?xml version="1.0" encoding="iso-8859-1"?>
<Invoice>
<Party>
<Country>FRANCE</Country>
</Party><Party>
<Country>SPAIN</Country>
</Party>
</Invoice>
<?xml version="1.0" encoding="iso-8859-1"?>
<Invoice>
<Party>
<Country>FRANCE</Country>
</Party>
<Party>
<Country>SPAIN</Country>
</Party>
</Invoice>
法国
西班牙
所以我的问题是,如何在原始元素之后和副本之前返回一行
谢谢解析文档时,请使用:
this._xmldoc = XDocument.Parse(yourXmlString);
而不是:
this._xmldoc = XDocument.Parse(yourXmlString, LoadOptions.PreserveWhitespace);
有什么原因不能在保存时重新格式化吗?(我希望
XDocument.Save
会自动执行此操作,除非您指定SaveSettings.DisableFormatting
)如何保存您的代码\u xmldoc您也可以发布此代码吗?我使用Save方法,但我的xml格式不“良好”…您需要一个根元素,例如,在NEATHHITESPACE(换行符)下包含Party元素的Party在XML中不相关。。。事实上,一个格式良好的XML文档只能有一个根元素