你知道只用JavaScript就能把HTML标签转换成WordML的方法吗?我需要获取DOM元素的内容,并将其中的内容转换为WordML。
发布于 2016-03-01 01:46:07
已经在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的超文本标记语言的结构,我只能给您一个非常通用的代码解决方案,它可能如下所示:
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...
}具体的实现,我将留给您,因为我不知道足够的细节,给您一个更详细的答案。
https://stackoverflow.com/questions/35699486
复制相似问题