2016-01-20 46 views
0

我嘗試更新此XML頁面:用這種方法試圖更新XML文件,但它把一切都在一個標籤

<?xml version="1.0" encoding="utf-8"?> 
<news> 
    <report> 
    <user></user> 
    <date></date> 
    <content></content> 
    </report> 
</news> 

public static void InsetXML(string user, string date, string content, string Xmlfile) 
    { 


     string XMLfile; 
     XmlElement reportEle, userEle, dateEle, contentEle; 
     XmlDocument doc = new XmlDocument(); 
     XMLfile = Xmlfile; 
     doc.Load(XMLfile); 
     reportEle = doc.CreateElement("report"); 
     userEle = doc.CreateElement("user"); 
     dateEle = doc.CreateElement("date"); 
     contentEle = doc.CreateElement("content"); 
     userEle.InnerText = user; 
     dateEle.InnerText = date; 
     contentEle.InnerText = content; 
     reportEle.AppendChild(userEle); 
     reportEle.AppendChild(dateEle); 
     reportEle.AppendChild(contentEle); 
     doc.DocumentElement.InsertAfter(reportEle, doc.DocumentElement.FirstChild); 
     FileStream fsxml = new FileStream(XMLfile, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite); 
     doc.Save(fsxml); 
     fsxml.Close(); 

    } 

考慮,string Xmlfile = Server.MapPath("news.xml"); (複製方法從我正在使用的書),但每次我嘗試它,它只是寫入所有內容到用戶標籤中,如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<news> 
    <report> 
    <user> 
    </user> 
    <date> 
    </date> 
    <content> 
    </content> 
    </report> 
    <report> 
    <user>dsfdsfg,10.10.1999,sdfas</user> 
    <date> 
    </date> 
    <content> 
    </content> 
    </report> 
</news> 

感謝所有幫手:D

+0

難道我的解決方案最終會爲你工作?如果是這樣,請接受它作爲答案。 – terbubbs

回答

0

試試這個試試..我會離開這個link作進一步的參考。

public static void InsetXML(string user, string date, string content, string Xmlfile) 
{ 
    XmlDocument xmlDoc = new XmlDocument(); 
    XmlNode rootNode = xmlDoc.CreateElement("news"); 
    xmlDoc.AppendChild(rootNode); 

    XmlNode parent = xmlDoc.CreateElement("report"); 
    rootNode.AppendChild(parent); 

    XmlNode child1 = xmlDoc.CreateElement("user"); 
    child1.InnerText = user; 
    parent.AppendChild(child1); 

    XmlNode child2 = xmlDoc.CreateElement("date"); 
    child2.InnerText = date; 
    parent.AppendChild(child2); 

    XmlNode child3 = xmlDoc.CreateElement("content"); 
    child3.InnerText = content; 
    parent.AppendChild(child3); 

    FileStream fsxml = new FileStream(Xmlfile, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite); 
    xmlDoc.Save(fsxml); 
    fsxml.Close(); 
} 

我測試了這個,並將XML寫入驅動器上的現有.xml文件。

這是結果:

<news> 
    <report> 
    <user>dsfdsfg</user> 
    <date>10.10.1999</date> 
    <content>sdfas</content> 
    </report> 
</news> 
相關問題