如何从Node.js中的文档获取表

时间:2018-11-12 12:48:31

标签: javascript html node.js json parsing

我正在使用xml-js将XML文档解析为json,其中一个属性是标记语言(HTML)。这是解析为JSON之后的XML。 在"description":"_text":中,我得到了html。

  {
                    "name": {
                        "_text": "0"
                    },
                    "description": {
                        "_text": "<html xmlns:fo=\"http://www.w3.org/1999/XSL/Format\" xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\">\n\n<head>\n\n<META http-equiv=\"Content-Type\" 
content=\"text/html\">\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n\n</head>\n\n<body style=\"margin:0px 0px 0px 0px;overflow:auto;background:#FFFFFF;\">\n\n<table style=\"font-family:Arial,Verdana,Times;font-size:12px;text-align:left;width:100%;border-collapse:collapse;padding:3px 3px 3px 3px\">\n\n<tr style=\"text-align:center;font-weight:bold;background:#9CBCE2\">\n\n<td>0</td>\n\n</tr>\n\n<tr>\n\n<td>\n\n<table style=\"font-family:Arial,Verdana,Times;font-size:12px;text-align:left;width:100%;border-spacing:0px; padding:3px 3px 3px 3px\">\n\n<tr>\n\n<td>FID</td>\n\n<td>0</td>\n\n</tr>\n\n<tr bgcolor=\"#D4E4F3\">\n\n<td>Id</td>\n\n<td>0</td>\n\n</tr>\n\n<tr>\n\n<td>City</td>\n\n<td>Islamabad</td>\n\n</tr>\n\n<tr bgcolor=\"#D4E4F3\">\n\n<td>Zones</td>\n\n<td>1</td>\n\n</tr>\n\n<tr>\n\n<td>Sector</td>\n\n<td>F-7</td>\n\n</tr>\n\n<tr bgcolor=\"#D4E4F3\">\n\n<td>Sub_Sector</td>\n\n<td>3</td>\n\n</tr>\n\n<tr>\n\n<td>Street_No</td>\n\n<td>0</td>\n\n</tr>\n\n<tr bgcolor=\"#D4E4F3\">\n\n<td>Gali_No</td>\n\n<td>0</td>\n\n</tr>\n\n<tr>\n\n<td>Plot_No</td>\n\n<td>0</td>\n\n</tr>\n\n<tr bgcolor=\"#D4E4F3\">\n\n<td>Area</td>\n\n<td>91849</td>\n\n</tr>\n\n<tr>\n\n<td>Land_Use</td>\n\n<td></td>\n\n</tr>\n\n<tr bgcolor=\"#D4E4F3\">\n\n<td>Road_Name</td>\n\n<td>Khayban-e-Iqbal</td>\n\n</tr>\n\n</table>\n\n</td>\n\n</tr>\n\n</table>\n\n</body>\n\n</html>\n\n"

                    }
                }

我有如何将描述中的表的值解析为json?

1 个答案:

答案 0 :(得分:1)

首先剪切字符串的HTML表部分

const a = ... //the json object  
const b = a.description._text.indexOf('<table')
const c = a.description._text.indexOf('</table>')
const d = a.description._text.slice(b,c+8)
console.log(d)

然后使用一些html json转换器,例如https://www.npmjs.com/package/html2json