通过JavaScript将HTML解析为纯文本

问题描述

我正在发出一些ajax请求,该请求返回整个HTML页面作为响应。我需要从该页面获取一些数据,尤其是特定value的{​​{1}}。

最好的方法是什么?

我的想法:

  • 找到<input>标签结束和<body>开始的位置,将里面的所有东西抓到字符串中,然后通过</body>放到某个容器中。
  • 自制解析器:找到我需要的id的字符位置,将响应字符串转换为数组,设置读取位置等于id字符的位置,移至innerHTML字符开始的位置,读取到缓冲区直到新的"来了。

如果有一个使用经典DOM语法的框架来做到这一点,那将是完美的,例如:

"

解决方法

一个非常优雅的解决方案是使用DOMParser。

const parser = new DOMParser()
const virtualDoc = parser.parseFromString(htmlString,'text/html')

然后,像对待任何DOM元素一样对待virtualDoc

virtualDom.getElementById('someid').value
,

不知道它有多好,只是将整个响应与<html>和其他标签一起传递给某些容器即可。然后,只需要打电话

document.getElementById("needid").value