您是否知道使用JavaScript将HTML标记转换为WordML的方法?我需要获取DOM元素的内容并将内部转换为WordML。
答案 0 :(得分:0)
在npm there doesn't seem to be a library上查看此内容。
所以我认为你必须自己做。话虽如此,WordML
只是一种特殊的XML风格,对吗?你指的是This is the WordML?
因此,要获得DOM元素的内容非常简单,可以使用jQuery来实现。
var ele = $('#wordml-element');
现在,您可以将其转换为WordML
兼容XML
。您可以尝试使用xml library on npm。
因此,您将把树结构化DOM元素转换为树结构化XML元素。这样做的推荐模式称为Visitor Pattern。
从那里你将留下XML
结构,你可以使用相同的模式进一步操作。最后,您将XML
结构转换为字符串,这将保存到文件中。
既然我真的不知道你想要转换成WordML
的HTML的结构,我只能给你一个非常通用的代码解决方案,这可能看起来像这样:
var xml = require('xml')
function onTransformButtonClick() {
var options = {} // see documentation
var ele = $('#wordml-element')[0]
var wordml = transformElement(ele)
var text = xml(wordml, options);
fileSave(text);
}
function transformElement(ele) {
switch(ele.tagName) { // You could use attributes or whatever
case 'word-document':
return transformDocument(ele);
case 'word-body':
return transformBody(ele);
case 'word-p':
return transformParagraph(ele);
case 'word-r':
return transformRun(ele);
case 'word-text':
return transformText(ele);
}
}
function transformDocument(ele) {
var wordDocument = xml.element({...})
ele.childNodes.forEach(function (child) {
wordDocument.push(transformElement(child))
})
return [wordDocument]
}
function transformBody(ele) {
// create new element via xml library...
}
function transformParagraph(ele) {
// create new element via xml library...
}
function transformRun(ele) {
// create new element via xml library...
}
function transformText(ele) {
// create new element via xml library...
}
由于我不了解足够的详细信息以便为您提供更详细的答案,因此具体实施我将留给您。