我有一些要从HTML文件提取的对象。
<h1> heading</h1>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data" : {"here" : "test"} }
<h2> heading</h2>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data2" : {"here" : "test"} }
我将如何提取对象,以便随后可以使用JSON.parse()解析它们并将其用于我的JS代码中?
从文本/ html文件中实质上剥离不是对象的任何内容。
{"data" : {"here" : "test"} }
{"data2" : {"here" : "test"} }
答案 0 :(得分:4)
您可以遍历节点并选择文本节点。
var objs = Array.from(document.body.childNodes) // select all the nodes
.filter( // pick out just the lines we want
node =>
node.nodeType === Node.TEXT_NODE && // text node
node.nodeValue.trim().length // get rid of line feeds
).map(node =>
JSON.parse(node.nodeValue.trim())) // convert to object
console.log(objs)
<h1> heading</h1>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data" : {"here" : "test"} }
<h2> heading</h2>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
<p> dsfhklsd sdlfjklsdj ljsdkflj</p>
{"data2" : {"here" : "test"} }
答案 1 :(得分:0)
假设您的源代码正在由JavaScript作为字符串处理,我将使用Regex删除所有html元素(假设您想要的JSON不会像示例中那样包装在html元素中)或解析所有内容在花括号之间。