通过JavaScript将HTML解析为纯文本
我提出了一些ajax请求,返回整个HTML页面作为响应。我需要从该页面获取一些数据,特别是特定通过JavaScript将HTML解析为纯文本,javascript,html-parsing,Javascript,Html Parsing,我提出了一些ajax请求,返回整个HTML页面作为响应。我需要从该页面获取一些数据,特别是特定的值 最好的方法是什么 我的想法是: 找到标记结束和开始的位置,抓取字符串中的所有内容,并通过innerHTML放入某个容器 自制解析器:找到我需要的id的字符位置,将响应字符串转换为数组,将读取位置设置为id字符的位置,移动到“字符开始的位置,读取到缓冲区,直到新的”出现 如果有一个使用经典DOM语法的框架来实现这一点,那就太完美了,比如: htmlString.getElementById(&q
的值
最好的方法是什么
我的想法是:
- 找到
标记结束和
开始的位置,抓取字符串中的所有内容,并通过innerHTML
放入某个容器
- 自制解析器:找到我需要的id的字符位置,将响应字符串转换为数组,将读取位置设置为id字符的位置,移动到
“
字符开始的位置,读取到缓冲区,直到新的”
出现
如果有一个使用经典DOM语法的框架来实现这一点,那就太完美了,比如:
htmlString.getElementById("someid").value
不知道它有多好,但只需将带有
和其他标记的整个响应传递给一些容器就可以了。那么,你只需要打个电话
document.getElementById("needid").value
一个非常优雅的解决方案是使用DOMParser
const parser = new DOMParser()
const virtualDoc = parser.parseFromString(htmlString, 'text/html')
然后,像对待任何DOM元素一样对待virtualDoc
virtualDom.getElementById('someid').value
这是答案吗?如果是这样的话,那么请写一个“什么是最好的方式……”询问一个(最有可能的)基于观点的答案,这个答案对于so来说是离题的。“如果有一个框架就太完美了…”要求提供一个外部资源,这也是一个离题的话题。@Andreas最好的方法(显然)意味着最快、最容易使用。这不是主观的,因为我们可以计算应该执行多少步骤,运行它需要多少时间。代码中有一个输入错误:virtualDom
应该是virtualDoc
。