Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过JavaScript将HTML解析为纯文本_Javascript_Html Parsing - Fatal编程技术网

通过JavaScript将HTML解析为纯文本

通过JavaScript将HTML解析为纯文本,javascript,html-parsing,Javascript,Html Parsing,我提出了一些ajax请求,返回整个HTML页面作为响应。我需要从该页面获取一些数据,特别是特定的值 最好的方法是什么 我的想法是: 找到标记结束和开始的位置,抓取字符串中的所有内容,并通过innerHTML放入某个容器 自制解析器:找到我需要的id的字符位置,将响应字符串转换为数组,将读取位置设置为id字符的位置,移动到“字符开始的位置,读取到缓冲区,直到新的”出现 如果有一个使用经典DOM语法的框架来实现这一点,那就太完美了,比如: htmlString.getElementById(&q

我提出了一些ajax请求,返回整个HTML页面作为响应。我需要从该页面获取一些数据,特别是特定

最好的方法是什么

我的想法是:

  • 找到
    标记结束和
    开始的位置,抓取字符串中的所有内容,并通过
    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