问题如下:
【1】我用以下代码
            XmlDoc = new XmlDocument();
            XmlNode = XmlDoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
            XmlDoc.AppendChild(XmlNode);只能在xml中增加<?xml version="1.0"?> ,那么“encoding="UTF-8"”为何没有?【2】在xml格式中可否有如下格式的xml<?xml version="1.0" encoding="UTF-8"?> 
<a>
 <b>xxx</b>
 <c>xxx</c>
</a>
<d>
 <e Key=”信息编号”>
  <f>xxx</f>
 </e>
</d>a节点我已经写好,但是如何写d节点。而且在d节点中的e节点以及其中信息都是需要循环写入的,不知可否实现?谢谢,盼复

解决方案 »

  1.   

    public class Sample
    {
      public static void Main()
      {
        XmlDocument doc = new XmlDocument();
        doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                    "<title>Pride And Prejudice</title>" +
                    "</book>");    //Create an XML declaration. 
        XmlDeclaration xmldecl;
        xmldecl = doc.CreateXmlDeclaration("1.0",null,null);    //Add the new node to the document.
        XmlElement root = doc.DocumentElement;
        doc.InsertBefore(xmldecl, root);
            
        Console.WriteLine("Display the modified XML...");        
        doc.Save(Console.Out);
      }
    }
      

  2.   

    参见我的BOLG中有一篇类似的,代码有点乱,没有时间整理
    http://blog.csdn.net/yumanqing/archive/2007/03/20/1534744.aspx
      

  3.   

    xml规定,必须而且只有一个根结点你的xml不符合这个条件
      

  4.   

    第一个问题还是没有回答我呀。如何在<?xml version="1.0"?> 基础上,增加“encoding="UTF-8"”????关于第二个问题,改成下面这样应该可以了吧?<?xml version="1.0" encoding="UTF-8"?> 
    <a>
     <d>
      <b>xxx</b>
      <c>xxx</c>
     </d>
     <e>
      <f Key=”信息编号”>
      <g>xxx</g>
     </f>
     </e>
    </a>f节点和节点中的内容用循环实现
      

  5.   

    XmlNode.InnerText += " encoding=\"UTF-8\"";
      

  6.   


    XmlDoc = new XmlDocument();
    XmlNode = XmlDoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
    XmlNode.InnerText += " encoding=\"UTF-8\"";
    XmlDoc.AppendChild(XmlNode);
      

  7.   

    public bool Create(string name)//name创建的文件名
    {
    try{
    XmlDoc = new XmlDocument();
    XmlDoc.Create(name,Encoding.UTF-8);
    XmlDoc.close();
    return true;
    }
    catch(Exception ex)
    {MessageBox.Show(ex.toString());return false;}
    }