在XML文件中新建一个节点我用下面的几句。
XmlDocument m_dom = new XmlDocument();
m_dom.Load(GetXMLFile());
XmlNode m_root = m_dom.SelectSingleNode("/First");
XmlNode m_node ;
for(int i = 0 ;i<10 ;++i)
{
    m_node = m_dom.CreateNode(XmlNodeType.Element,"Node","");
    m_node.InnerText = "B" + i.ToString();
    m_root.AppendChild(m_node);
}
m_dom.Save(GetXMLFile());但是这样每次新建一个节点的时候要把整个XML文件读入内存(m_dom.Load(GetXMLFile());),这样就造成浪费了。我只需加一个节点然后就关闭文件。有没有更好的解决办法,不需要将XML读到内存,或只需读一小部分。

解决方案 »

  1.   

    是吗,我很怀疑这样做对内存的消耗会很大的。有人能给我个理由吗?或m_dom.Load()的原理。快来抢分啊!
      

  2.   

    试过啊,可以用来创建一个XML文件,第一次可以添加节点,但是后面打开就不知道怎么添加,添加了格式不对啊。如果重新调用m_xmlWriter.WriteStartElement(),又会重新写一个根结点。所以问题的关键是不知道怎么设置以哪个节点为开始结点,也就是写在哪个结点下面。