调用word等对象的SaveAs()为xml格式

解决方案 »

  1.   

    http://msdn.microsoft.com/library/en-us/vbawd11/html/womthSaveAs1.asp?frame=true
      

  2.   

    类似:
    http://dotnet.aspx.cc/ShowDetail.aspx?id=13C874E4-7FC7-4FD1-8CF6-DE9EF4469A9C还原直接用office打开即可
      

  3.   

    这个不能简单的实现。1——
    可以通过对应的应用程序(比如Word)把文档(doc)打开后另存为xml实现以及通过应用程序(Word)打开XML后另存为文档(doc)。2——
    直接把文件内容全部BASE64编码后保存到XML文件中,或者从XML文件中读取内容进行BASE64解码后保存到对应的文件。
      

  4.   

    参考http://dotnet.aspx.cc/ShowDetail.aspx?id=EBD43E74-1BDE-43AA-DEAF-211FA24A7BC2
    写如下代码测试通过:
    using System.IO;StreamReader mStm
    =new StreamReader("C:\\test.Doc",System.Text.Encoding.Default);
    char[] mChars=new char[mStm.BaseStream.Length];
    mStm.Read(mChars,0,mChars.Length);
       
    byte[] mBytes
    =System.Text.Encoding.Default.GetBytes(mChars);
    string  mStr = Convert.ToBase64String(mBytes);    
    System.Xml.XmlDocument mXmlDoc
    =new System.Xml.XmlDocument();  mXmlDoc.LoadXml("<pic><name>孟宪会</name><photo>" + mStr + "</photo></pic>");
    mXmlDoc.Save("c:\\test.xml");
      

  5.   

    简单啊,孟子好像提供了这样一个程序,就是把你的文件按二进制读取,存入XML的相应字段即可,读取即相反的过程。
      

  6.   

    To大象:你的代码给我很大启发,但是,如果Word文档带有图片,好像不行谢谢各位的指点!
    以下是我解决问题的代码
              System.IO.FileStream inFile=new FileStream("C:\\test\\qw.pdf",System.IO.FileMode.Open,System.IO.FileAccess.Read);
                byte[]  binaryData=new byte [inFile.Length];
                inFile.Read(binaryData, 0,(int)inFile.Length);
                string mStr=Convert.ToBase64String(binaryData);
                string hh=mStr;
                System.Xml.XmlDocument mXmlDoc=new System.Xml.XmlDocument(); 
               
                mStr=string.Format ("<测试><项 aa=\"{0}\"/></测试>",mStr);
                mXmlDoc.LoadXml( mStr);
                mXmlDoc.Save("c:\\test\\wword.xml");            XmlDocument doc=new XmlDocument ();
                doc.Load ("c:\\test\\wword.xml");
                XmlNode node=doc.DocumentElement .SelectSingleNode("项") ;
                XmlElement ele=(XmlElement)node;
                string pic=ele.GetAttribute ("aa");                         byte[] bytes=Convert.FromBase64String (pic);
                   
                FileStream outfile=new System.IO .FileStream ("C:\\test\\twoqw.pdf",System.IO.FileMode.CreateNew);
                outfile.Write(bytes,0,(int)bytes.Length );