从Gecko中的字符串创建文档

时间:2009-10-23 22:46:59

标签: javascript xml dom firefox-addon gecko

我有一个字符串,如 <html><body><div id="message">Hello World!</div></body></html> 我想获得#message元素的内容,而不是自己解析HTML。

我想也许我可以用Gecko中的字符串创建一个文档对象(这是为了添加Firefox),但我没有看到任何简单的方法。

我注意到有一个createDocument方法,但是没有字符串。我必须从文本中删除<html>部分,然后我再次开始假设。

有人有什么想法吗?感谢。

编辑:这似乎对我有用:

doc = document.implementation.createDocument( "http://www.w3.org/1999/xhtml", "html", null );
doc.firstChild.innerHTML = '<html><body><div id="message">Hello World!</div></body></html>';
node = doc.getElementById( "message" ); 
alert( node.innerHTML );

3 个答案:

答案 0 :(得分:3)

不喜欢回答我自己的问题,但这似乎对我有用:

doc = document.implementation.createDocument( "http://www.w3.org/1999/xhtml", "html", null );
doc.firstChild.innerHTML = '<html><body><div id="message">Hello World!</div></body></html>';
node = doc.getElementById( "message" ); 
alert( node.innerHTML );

答案 1 :(得分:2)

你从哪里得到字符串?如果是XML,您可以使用DOMParser

否则,您必须创建一个HTML文档 - https://developer.mozilla.org/en/Parsing_HTML_From_Chrome

仅使用createDocument的工作似乎很可疑,因为人们一直使用更复杂的解决方案。

答案 2 :(得分:0)

它始终是语法吗?如果是这样,为什么不使用正则表达式?