2

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

我想也许我可以从 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 );
4

3 回答 3

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 );
于 2009-10-24T06:32:36.223 回答
2

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

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

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

于 2009-10-24T20:50:09.927 回答
0

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

于 2009-10-23T22:58:19.630 回答