我想改变node.js中的DOM结构。我可以加载XML字符串并使用xmldom中的本地方法(https://github.com/jindw/xmldom)更改它,但是当我加载XPath(https://github.com/goto100/xpath)并尝试通过该选择器更改DOM时,它不起作用。如何通过node.js中的XPath在xmldom中更改DOM?
有没有另外一种方法可以做到这一点?要求是:
- 必须在浏览器和服务器端的工作都
- 不能使用eval或其他代码执行的东西(安全)
示例代码来说明如何(纯JS?)我今天正在尝试,也许我只是想念一些基本的东西?
var xpath = require('xpath'),
dom = require('xmldom').DOMParser;
var xml = '<!DOCTYPE html><html><head><title>blah</title></head><body id="test">blubb</body></html>';
var doc = new dom().parseFromString(xml);
var bodyByXpath = xpath.select('//*[@id = "test"]', doc);
var bodyById = doc.getElementById('test');
var h1 = doc.createElement('h1').appendChild(doc.createTextNode('title'));
// Works fine :)
bodyById.appendChild(h1);
// Does not work :(
bodyByXpath.appendChild(h1);
console.log(doc.toString());