[英]Parse HTML payload to JSON
我遇到以下有效负载的问题。
我通过API调用在Node.js后端上收到的有效负载如下。
{
"id": "1",
"content":{
"text": "
<body>
<div>
<table>
<thead>
<tr>
<th><strong>Header 1</strong></th>
<th><strong>Header 2</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>question 1</td>
<td>answer 1</td>
</tr>
<tr>
<td>question 2</td>
<td>answer 2</td>
</tr>
<tr>
<td>question 3</td>
<td>answer 3</td>
</tr>
</tbody>
</table>
</div>
</body>
"
}
}
所以在这里我将响应存储如下:
var response = data
即数据是JSON响应
而且我将HTML数据保存如下
var HTMLContentText = response.content.text
结果,我将得到:
<body>
<div>
<table>
<thead>
<tr>
<th><strong>Header 1</strong></th>
<th><strong>Header 2</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>question 1</td>
<td>answer 1</td>
</tr>
<tr>
<td>question 2</td>
<td>answer 2</td>
</tr>
<tr>
<td>question 3</td>
<td>answer 3</td>
</tr>
</tbody>
</table>
</div>
</body>
在这里我要执行以下操作
我在JAVA中有相同的代码。
这里仅供参考。 在这里,我使用Jsoup解析器执行所有操作。 我现在想用Java语言执行所有操作。
// HTML as text (from JSON)
String HtmlFormattedText = (String)((JSONObject)JsonObject.get("content")).get("text");
// parse the html text into an object
Document HtmlFormattedDocumentObject = Jsoup.parse(HtmlFormattedText);
// get the table from the response
Element allRowsFromTable = HtmlFormattedDocumentObject.select("table").first();
// get the rows of the table
return allRowsFromTable.select("tr");
我为此创建了一个代码段。 函数的返回值包含表的所有tr元素-您无需首先选择表。
const response = { "id": "1", "content": { "text": ` <body> <div> <table> <thead> <tr> <th><strong>Header 1</strong></th> <th><strong>Header 2</strong></th> </tr> </thead> <tbody> <tr> <td>question 1</td> <td>answer 1</td> </tr> <tr> <td>question 2</td> <td>answer 2</td> </tr> <tr> <td>question 3</td> <td>answer 3</td> </tr> </tbody> </table> </div> </body> ` } } // logging the result of the function console.log(parseTable(response.content.text)) function parseTable(string) { // creating an HTML element const el = document.createElement('html') // adding the string to the HTML element el.innerHTML = string // selecting and returning all tr elements return el.getElementsByTagName('tr') }
注意:我将单引号更改为反引号 ,因为它允许多行字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.