asp.net - Manipulating Word 2007 Document XML in C# -
i trying manipulate xml of word 2007 document in c#. have managed find , manipulate node want can't seem figure out how save back. here trying:
// open document memorystream package pkgfile = package.open(memorystream, filemode.open, fileaccess.readwrite); packagerelationshipcollection pkgrcofficedocument = pkgfile.getrelationshipsbytype(strrelroot); foreach (packagerelationship pkgr in pkgrcofficedocument) { if (pkgr.sourceuri.originalstring == "/") { uri uridata = new uri("/word/document.xml", urikind.relative); packagepart pkgprtdata = pkgfile.getpart(uridata); xmldocument doc = new xmldocument(); doc.load(pkgprtdata.getstream()); nametable nt = new nametable(); xmlnamespacemanager nsmanager = new xmlnamespacemanager(nt); nsmanager.addnamespace("w", nsuri); xmlnodelist nodes = doc.selectnodes("//w:body/w:p/w:r/w:t", nsmanager); foreach (xmlnode node in nodes) { if (node.innertext == "{{texttochange}}") { node.innertext = "success"; } } if (pkgfile.partexists(uridata)) { // delete template "/customxml/item1.xml" part pkgfile.deletepart(uridata); } packagepart newpkgprtdata = pkgfile.createpart(uridata, "application/xml"); streamwriter partwrtr = new streamwriter(newpkgprtdata.getstream(filemode.create, fileaccess.write)); doc.save(partwrtr); partwrtr.close(); } } pkgfile.close();
i error 'memory stream not expandable'. ideas?
i recommend use open xml sdk instead of hacking format yourself.
Comments
Post a Comment