通过 JavaScript 将 HTML 解析为纯文本

Art*_*tur 4 javascript html-parsing

我正在发出一些 ajax 请求,该请求返回整个 HTML 页面作为响应。我需要从该页面获取一些数据,特别value是特定的<input>.

最好的方法是什么?

我的想法:

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

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

htmlString.getElementById("someid").value
Run Code Online (Sandbox Code Playgroud)

eds*_*999 15

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

const parser = new DOMParser()
const virtualDoc = parser.parseFromString(htmlString, 'text/html')
Run Code Online (Sandbox Code Playgroud)

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

virtualDoc.getElementById('someid').value
Run Code Online (Sandbox Code Playgroud)