我有一个关于如何将 xmldoc 保存为 word 文件的问题。我想打开 word 文件,使用 xmldocument 类对潜在的 xml 结构进行一些操作,然后将其重新保存回 word 文件。这就是我目前正在做的事情:
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(@"E:\HelloWorld.docx", true))
{
MainDocumentPart mainPart = wordDoc.MainDocumentPart;
var xmlDoc = new XmlDocument();
using (Stream partStream = part.GetStream())
using (XmlReader partXmlReader = XmlReader.Create(partStream))
xmlDoc.Load(partXmlReader);
//xml node manipulation here
xmlDoc.Save(@"E:\HelloWorld.docx");
}
然而,这会导致文档损坏。执行此功能的正确方法是什么?
OpenXML 文档不仅仅是一个 XML 文件(实际上,它是一个包含多个文件(其中包括 XML 文件)的 ZIP 存档。
你应该做的是修改你的WordprocessingDocument
然后保存它(这是在结束时自动完成的)using
块),不保存表示部分文档的 XML 文件:
using (var wordDoc = WordprocessingDocument.Open(fileName, true))
{
MainDocumentPart mainPart = wordDoc.MainDocumentPart;
using (Stream partStream = mainPart.GetStream())
{
var xmlDoc = new XmlDocument();
using (XmlReader partXmlReader = XmlReader.Create(partStream))
xmlDoc.Load(partXmlReader);
//xml node manipulation here
partStream.Position = 0;
using (XmlWriter partXmlWriter = XmlWriter.Create(partStream))
xmlDoc.Save(partXmlWriter);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)