var generateContentTypes = function(zip, _contentTypes) { // body... var xmlString = zip.file("[Content_Types].xml").asText(); var xml = new DOMParser().parseFromString(xmlString, 'text/xml'); var serializer = new XMLSerializer(); var types = xml.documentElement.cloneNode(); for (var node in _contentTypes) { types.appendChild(_contentTypes[node]); } var startIndex = xmlString.indexOf("<Types"); xmlString = xmlString.replace(xmlString.slice(startIndex), serializer.serializeToString(types)); zip.file("[Content_Types].xml", xmlString); }
/** * Set the value for a Tag (find by xpath) */ setTagValue(path, value) { const mdoc = new DOMParser().parseFromString(this.xmlContent, 'text/xml'); const mnode = xpath.select(path, mdoc); mnode[0].textContent = value; this.xmlContentEdited = serializer.serializeToString(mdoc); }
toXML() { return new XMLSerializer().serializeToString(this.doc); }
var updateMediaRelations = function(zip, count, _media) { var xmlString = zip.file("word/_rels/document.xml.rels").asText(); var xml = new DOMParser().parseFromString(xmlString, 'text/xml'); var childNodes = xml.getElementsByTagName('Relationships')[0].childNodes; var serializer = new XMLSerializer(); for (var node in childNodes) { if (/^\d+$/.test(node) && childNodes[node].getAttribute) { var target = childNodes[node].getAttribute('Target'); if ('word/' + target == _media[count].oldTarget) { _media[count].oldRelID = childNodes[node].getAttribute('Id'); childNodes[node].setAttribute('Target', _media[count].newTarget); childNodes[node].setAttribute('Id', _media[count].oldRelID + '_' + count); } } } // console.log(serializer.serializeToString(xml.documentElement)); var startIndex = xmlString.indexOf("<Relationships"); xmlString = xmlString.replace(xmlString.slice(startIndex), serializer.serializeToString(xml.documentElement)); zip.file("word/_rels/document.xml.rels", xmlString); // console.log( xmlString ); }
xmlString = xmlString.replace(xmlString.slice(startIndex), serializer.serializeToString(xml.documentElement));
xmlString = xmlString.replace(xmlString.slice(startIndex), serializer.serializeToString(xml.documentElement));
const toXML = doc => new XMLSerializer().serializeToString(doc)
var generateRelations = function(zip, _rel) { // body... var xmlString = zip.file("word/_rels/document.xml.rels").asText(); var xml = new DOMParser().parseFromString(xmlString, 'text/xml'); var serializer = new XMLSerializer(); var types = xml.documentElement.cloneNode(); for (var node in _rel) { types.appendChild(_rel[node]); } var startIndex = xmlString.indexOf("<Relationships"); xmlString = xmlString.replace(xmlString.slice(startIndex), serializer.serializeToString(types)); zip.file("word/_rels/document.xml.rels", xmlString); }