Csharp/C#教程:OpenXML替换word文档的特定customxml部分分享


OpenXML替换word文档的特定customxml部分

我正在使用OpenXML SDK ver 2来操作一些word文档。 文档目前有自定义的xml部分,我想要做的是具体替换部件的xml。

我知道我可以做这样的事情来访问文档的customxml部分:

 Dim mainStream As New MemoryStream() Dim buffer As Byte() = File.ReadAllBytes(Server.MapPath("myfile.docx")) mainStream.Write(buffer, 0, buffer.Length) Try Using mainDocument As WordprocessingDocument = WordprocessingDocument.Open(mainStream, True) MainDocumentPart mainPart = mainDocument.MainDocumentPart; 'collection of custom xml parts Dim parts = mainPart.CustomXmlParts For Each part As CustomXmlPart In parts 'how do I replace the xml here?? Next 

但正如您所看到的,我不确定如何替换该部分的XML。 我的文档有两个名为item1.xml和item2.xml的XML部分。 我想替换这些部分中的XML。 我知道我可以使用.DeleteParts()删除现有的xml部分,我可以使用AddCustomXmlPart()来创建新的部分,但我不想这样做。 我只是想替换现有部件的XML。

谁能建议我怎么做? 任何建议表示赞赏。

谢谢。

编辑 oops忘记了代码标签

使用CustomXmlPart实例的FeedData()方法替换自定义xml部件的XML。 FeedData()方法首先截断零件流,然后将新数据写入零件流。 因此,您可以使用此方法替换现有自定义xml部件中的XML。

上述就是C#学习教程:OpenXML替换word文档的特定customxml部分分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 MainDocumentPart mainPart = mainDocument.MainDocumentPart; Dim parts = mainPart.CustomXmlParts For Each part As CustomXmlPart In parts Dim ms As New MemoryStream Dim xtw As New XmlTextWriter(ms, Encoding.UTF8) ' Create your xml.' xtw.WriteStartDocument() xtw.WriteStartElement("bla") xtw.WriteEndElement() xtw.WriteEndDocument() xtw.Flush() ms.Seek(0, SeekOrigin.Begin) part.FeedData(ms) ' Replace old xml in part stream.' xtw.Close() Next 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1001014.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐