我在这里要做的是看看该元素是否存在于xml文档中,如果存在,那么我想修改它的内部文本。如果它不存在,我想创建它并为它创建适当的内部文本。然而,当一个元素确实存在时,我试图将其内部文本更改为比整个xml文件写入更短的东西。XML.Save文件写神秘
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<MyXMLFile>
<Source>C:\Users\Dacto\Desktop\</Source>
<Destination>C:\Program Files\Adobe</Destination>
</MyXMLFile>
较短的内部文本后:
<?xml version="1.0" encoding="utf-8"?>
<MyXMLFile>
<Source>C:\Users\Dacto\Desktop\Napster</Source>
<Destination>C:\Users</Destination>
</MyXMLFile>/MyXMLFile>
见 “额外”/ MyXMLFile用较短的内部文本修改之前
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(path);
XmlNodeList felement = xmldoc.GetElementsByTagName(Element);
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
if (felement.Count == 0)
{
XmlElement elmRoot = xmldoc.DocumentElement;
XmlElement xmlele = xmldoc.CreateElement(Element);
xmlele.AppendChild(xmldoc.CreateTextNode(data));
elmRoot.AppendChild(xmlele);
xmldoc.Save(fs);
}
else
{
felement[0].InnerText = data;
xmldoc.Save(fs);
}
fs.Close();
XML文件>发生了什么事?
这就是似乎正在发生的事情,我将其更改为FileMode.Truncate - 它工作:) – Dacto 2010-12-07 08:04:18