我在這裏要做的是看看該元素是否存在於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