您是否知道仅使用 JavaScript 将 HTML 标记转换为 WordML 的任何方法。我需要获取 DOM 元素的内容并将里面的内容转换为 WordML。
问问题
536 次
1 回答
0
在 npm上查看似乎还没有一个库。
所以我认为你将不得不自己制作。话虽如此,这WordML
只是 XML 的一种特殊风格,对吧?这是你指的WordML?
因此,要获取 DOM 元素的内容非常容易,您可以使用 jQuery 来完成。
var ele = $('#wordml-element');
从那里您现在需要将其转换为WordML
兼容XML
的 . 为此,您可以尝试使用npm 上的 xml 库。
因此,您将把树状结构的 DOM 元素转换成树状结构的 XML 元素。这样做的推荐模式称为访问者模式。
从那里您将得到一个XML
结构,您可以使用相同的模式进一步操作它。最后,您会将XML
结构转换为字符串,并将其保存到文件中。
现在,由于我真的不知道您要转换成的 HTML 的结构,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...
}
由于我不知道足够的细节给你更详细的答案,我将留给你具体的实现。
于 2016-02-29T17:46:07.027 回答