it means your xml is invalid, show your xml

解决方案 »

  1.   

    我得xml文件是filename ,我用如下的方法将这个文件写入byte【】
    private const string filename = "Account.xml";
    XmlDocument myDocument=new XmlDocument();
    byte[] pixels = new byte[numPixels];
    FileStream myStream=new FileStream("c:\\"+filename,FileMode.Open);
    try
    {
    myDocument.Load(myStream);
    } catch {}
    myStream.Write(pixels,1,100000);
    myStream.Close();xml文件如下:Account.xml
    <?xml version="1.0"?>
    <Account>
      <Username>qieyj</Username>
      <Password>0350</Password>
      <Template>PAR1</Template>
    </Account>
      

  2.   

    这样写
    myDocument.LoadXML(myStream);
      

  3.   

    不好意思

    LoadXml
    大小写错了
      

  4.   

    LoadXML只能接收string,不能接收流啊
      

  5.   

    StreamReader reader = new StreamReader(myStream);
    string s = reader.ReadToEnd();
    myDocument.LoadXML(s);
      

  6.   

    报错了,说是缺少根元素myDocument.LoadXML(s);
      

  7.   

    好像是这个byte【】不符合xml格式,怎么把这个byte【】再变回原来的xml文件啊
      

  8.   

    我得xml文件是filename ,我用如下的方法将这个文件写入byte【】
    private const string filename = "Account.xml";
    XmlDocument myDocument=new XmlDocument();
    byte[] pixels = new byte[numPixels];
    FileStream myStream=new FileStream("c:\\"+filename,FileMode.Open);
    try
    {
    myDocument.Load(myStream);
    } catch {}
    myStream.Write(pixels,1,100000);
    myStream.Close();xml文件如下:Account.xml
    <?xml version="1.0"?>
    <Account>
      <Username>qieyj</Username>
      <Password>0350</Password>
      <Template>PAR1</Template>
    </Account>
    然后再如下读:
    MemoryStream output = new MemoryStream(pixels,1,100000);
    StreamReader reader = new StreamReader(myStream);
    string s = reader.ReadToEnd();
    myDocument.LoadXML(s);
      

  9.   

    debug一下看看string s 里存的数据到底是什么样的不就知道了
      

  10.   

    what is 
    myStream.Write(pixels,1,100000);
    ???the following works for me (assume the xml file exists)         string filename = "C:\\Account.xml";
    XmlDocument myDocument=new XmlDocument();
    FileStream myStream=new FileStream(filename ,FileMode.Open);
    try
    {
    myDocument.Load(myStream);
    } catch(Exception e)
    {
    Console.WriteLine(e.Message);
    }
    myDocument.Save(Console.Out);
    myStream.Close();         string sXml = "<root>hello</root>";
    myDocument=new XmlDocument();
    myDocument.LoadXml(sXml);
    myDocument.Save(Console.Out); MemoryStream output = new MemoryStream(System.Text.Encoding.Default.GetBytes(sXml));
    myDocument=new XmlDocument();
    myDocument.Load(output);
    myDocument.Save(Console.Out);
      

  11.   

    To capelantop(飞翔的雄鹰):
       真是搞不懂,你访问一个存在的xml文件,为什么要先读成byte[]流,然后再用一个XmlDocument对象来读我想你是不是要做这个事情
    你要操作一个存在的xml文件,添加一个节点pixels值
    如果是这样的话
    你可以这种作
    string filename = "C:\\Account.xml";
    XmlDocument myDocument=new XmlDocument();
    myDocument.Load( filename );
    然后直接操作这个myDocument对象
    --修改,添加节点
    最后使用Save( filename );
    不就万事大吉
      

  12.   

    我是要在web服务里接收二进制流,然后再把它写入一个xml文件
      

  13.   

    writer = new XmlTextWriter("c:\\"+filename,null);
    writer.Formatting = Formatting.Indented;
    //Write the XML delcaration 
    writer.WriteStartDocument();
    //Write the ProcessingInstruction node
    // String PItext="type='text/xsl' href='book.xsl'";
    // writer.WriteProcessingInstruction("xml-stylesheet", PItext);
    //Write the DocumentType node
    // writer.WriteDocType("Account", null , null, "<!ENTITY h 'hardcover'>");     
    //Write a Comment node
    // writer.WriteComment("sample XML");   
    //Write an element (this one is the root)
    writer.WriteStartElement("Account");
    //Write the genre attribute
    // writer.WriteAttributeString("Username", t_username.Text.Trim());   
    //Write the ISBN attribute
    // writer.WriteAttributeString("Password", t_password.Text.Trim());
    //Write the title
    writer.WriteElementString("Username", t_username.Text.Trim());  
    writer.WriteElementString("Password", t_password.Text.Trim());
    //Write the style element
    // writer.WriteStartElement("Password");
    // writer.WriteEntityRef("h");
    // writer.WriteEndElement(); 
    //Write the price
    writer.WriteElementString("Template", t_template.Text.Trim());
    //Write CDATA
    // writer.WriteCData("Prices 15% off!!");
    //Write the close tag for the root element
    writer.WriteEndElement();            
    writer.WriteEndDocument();
    //Write the XML to file and close the writer
    writer.Flush();
    writer.Close();  
    int imageNum;
    byte[] pixels = new byte[numPixels];
    for(int i=0; i<numPixels; i++)
    pixels[i] = (byte) i;
    FileStream fs = new FileStream("c:\\Account.xml", FileMode.Create,FileAccess.Write, FileShare.None, 8192, false);
    fs.Write(pixels, 0, pixels.Length);
    fs.Close();