Javascript 使用正则表达式进行HTML解析的替代方法

Javascript 使用正则表达式进行HTML解析的替代方法,javascript,regex,parsing,node.js,Javascript,Regex,Parsing,Node.js,我正在node.js中使用regex解析HTML以返回字符串。然而,我在这篇文章中被告知这不是一个好主意: 更稳定的替代方案是什么 我是编程新手,所以教程的链接将非常有用。我很难理解一些文档说明 处理解析HTML的所有繁重工作。最重要的是,允许您使用CSS样式选择器来查找您要查找的特定元素 然而,我看了你的另一个问题,你真正应该问的问题不是“我如何从HTML页面中刮取这些数据”,而是“有没有更好的方法检索我正在查找的数据?”美国地质勘探局问到了 要获取水库表面高程的“最新瞬时值”,请下载该文件,

我正在node.js中使用regex解析HTML以返回字符串。然而,我在这篇文章中被告知这不是一个好主意:

更稳定的替代方案是什么

我是编程新手,所以教程的链接将非常有用。我很难理解一些文档说明

处理解析HTML的所有繁重工作。最重要的是,允许您使用CSS样式选择器来查找您要查找的特定元素

然而,我看了你的另一个问题,你真正应该问的问题不是“我如何从HTML页面中刮取这些数据”,而是“有没有更好的方法检索我正在查找的数据?”美国地质勘探局问到了

要获取水库表面高程的“最新瞬时值”,请下载该文件,执行
var d=JSON.parse
,然后:

for (var i = 0; i < d.value.timeSeries.length; i++) {
    if (d.value.timeSeries[i].variable.variableName == 'Elevation of reservoir water surface above datum, ft') {
        var result = d.value.timeSeries[i].values[0].value[d.value.timeSeries[i].values[0].value.length-1];
    }
}
for(var i=0;i

result
现在看起来像
{dateTime:“2012-04-07T17:15:00.000-05:00”,value:“1065.91”}

您已经被告知了这个问题,但您可能应该阅读以完全了解情况。基本问题与正则表达式的“机器”模型的理论“能力”有关,而不是解析HTML等语言所需的能力。它与语言/自动机理论有关。您可以看到:我是否定义了
var d=JSON.parse
http.get
callback中的for语句?
http.get(…,函数(res){…})
将在建立连接并开始接收数据时调用回调,而不是在完成时。您必须侦听数据(
res.on('data',function(chunk){…});
)并缓冲传入的数据,然后使用这些数据调用
JSON.parse(bufferString)
一次
res
发出
end