【发布时间】:2014-05-02 09:29:41
【问题描述】:
我需要从 xml 读取 XElements 并将新的 XElements 添加到现有的 xml。在我想将 newXElements 添加到 xElements 并更新存在的 xml 文件之后,我首先从 xml 获取 XElements。然后我调用 XmlWriter 我有一个异常:“该进程无法访问该文件,因为它正在被另一个进程使用”。错误在哪里?如何将 XElements 附加到流中的 xml?
IEnumerable<XElement> newXElements = GetNewXElements();
IEnumerable<XElement> xElements = GetXElements(path, "MyElement");
using (XmlWriter xw = XmlWriter.Create(path, settings))
{
// Write to xml code
}
public static IEnumerable<XElement> GetXElements(string inputUrl, string elementName)
{
using (XmlReader reader = XmlReader.Create(inputUrl))
{
reader.MoveToContent();
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == elementName)
{
XElement el = XNode.ReadFrom(reader) as XElement;
if (el != null)
{
yield return el;
}
}
}
}
}
}
【问题讨论】: