从html响应解析数据

时间:2018-09-26 10:03:51

标签: angular typescript parsing

我正在通过angular的GETWMS服务发送HttpClient请求。我得到的响应是字符串中的html。如何解析该字符串中的数据?

响应如下:

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
<body>
<p>Temperature 16.6 °C</p>
<p>Temperature 18.2 °C</p>
</body></html>

我需要获取段落标签内的值。我找到了仅通过innerHtml指令显示数据的解决方案,但这不是我的情况。

编辑:

我通过DOMParser找到了一种可能的解决方案:

const parser = new DOMParser();
const doc = parser.parseFromString(myHtmlStringResponse, "text/html");
const values = [];

const p = doc.getElementsByTagName("p");

for (const item of Array.from(p)) {
     values.push(item.textContent);
}

2 个答案:

答案 0 :(得分:3)

使用此regEx剥离响应中的所有html:

data.replace(/<(?:.|\n)*?>/gm, '');

其中数据是您的响应字符串

您将获得:

Temperature 16.6 °C
Temperature 18.2 °C

答案 1 :(得分:0)

您可以通过使用标记名来使用解析。

var pele = document.getElementsByTagName('p');

for(var i=0;i< pele.length;i++) {
  console.log(pele[i].innerHTML)
}

但是请确保您使用的是jquery,然后将此代码段置于ready函数下。