【问题标题】:html to json using javascript / nodejs [closed]使用 javascript / nodejs 将 html 转换为 json [关闭]
【发布时间】:2015-09-14 17:17:13
【问题描述】:

所以我有很多动态 HTML 内容(参见下面的示例),我想将这个原始 HTML 转换为 json 字符串。字符串是不同的,超过 40,000 行,我想要最有效的方法,正在考虑一个基于 Node.JS 的转换工具。

字符串数据示例:

<div class="row convRow font-sans side-other" id="message_{RANDOM_STRING}" data-usertypeid="{user type id - random string}"><div class="col-xs-1 col-sm-2 col-md-2 col-lg-1 conv-Image"><div class="hidden-xs"><a href="/@{PROFILE LINK - USERNAME}"><div class="userImage img-circle" style="background-image:url('{PROFILE PICTURE}');"></div></a></div></div><div class="col-xs-11 col-sm-10 col-md-10 col-lg-11 conv-Message"><img src="{BORDER}" class="bubbleTab"><div class="well" style="padding:7px"><div class="conv-Text" style="overflow:hidden">how is everyone? {THE MESSAGE SENT}</div><div class="conv-Time row"><div class="col-md-6"><a href="/@{PROFILE URL - USERNAME}/" data-usercard="PoeticPrince"><span class="userScreenName">@{USERNAME}</span> (M)</a> - {TIME} <span class="badgeHolder"></span> <span style="cursor:pointer" class="heartCommentButton compassionHeartFade" onclick="heartMsg({STRING - RANDOM});"><i class="fa fa-heart"></i><span class="pointHolder"></span></span></div><div class="col-md-6"><div class="pull-right-md">&nbsp;&nbsp;&nbsp;&nbsp;<span class="btn btn-xxs" onclick="referUserPopup({USER ID},{USERNAME});" data-toggle="tooltip" data-trigger="hover" title="Troll">refer</span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="btn btn-xxs" onclick="muteUserPopup({USER ID}, {USERNAME});" data-toggle="tooltip" data-trigger="hover" title="Hide messages from {USERNAME}.">mute/report</span></div></div></div></div></div></div>

将大量此类数据解析为 JSON 字符串的最佳方法是什么?

【问题讨论】:

  • JSON.stringify( htmlString) 将“将原始 HTML 转换为 json 字符串”。是不是有什么理由不使用它?

标签: javascript html json node.js


【解决方案1】:

看看这个库:

https://www.npmjs.com/package/himalaya

如何使用它的示例代码:

var himalaya = require('himalaya');
var html = require('fs').readFileSync('/webpage.html');
var json = himalaya.parse(html);
console.dir(json, {colors: true, depth: null});

这可能是您正在寻找的。​​p>

【讨论】:

  • 不错,但还不够深入。只去一级:{ tagName: 'div', attributes: { className: [Object], id: 'message_NrnM5P072BO5DeeppqEZr6ldlJjVAakW', dataset: [Object] }, children: [ [Object], [Object] ], type: 'Element ' } ]
  • @ssdev 你确定它只有一层吗?从他们的例子中似乎没有这样做。试试这行,获取json对象console.dir(json, {colors: true, depth: null})后查看整个json对象
猜你喜欢
  • 2011-04-01
  • 2023-03-18
  • 2010-12-13
  • 2020-05-12
  • 2019-05-07
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多