html to json & json to html
html2json & json2html
How to use
browser
include htmlparser.js & html2json.js scripts:
node
$ npm install html2jsonvar html2json = require('html2json').html2json;
var json2html = require('html2json').json2html;
API
json === html2json(document.body.innerHTML);
html === json2html(json);
console.assert(json === html);
JSON format
every json has node
memeber of node is
root
element
text
comment
root node is the root of JSON, every JSON must have only one root root, could have child.
element node represents html element, could have tag, attr, child.
text node represents text element, could have text.
comment node represents commment element, could have text.
Sample
html:
sample text with inline tag
foo
goo
json:
{
node: 'root',
child: [
{
node: 'element',
tag: 'div',
attr: { id: '1', class: 'foo' },
child: [
{
node: 'element',
tag: 'h2',
child: [
{ node: 'text', text: 'sample text with ' },
{ node: 'element', tag: 'code', child: [{ node: 'text', text: 'inline tag' }] }
]
},
{
node: 'element',
tag: 'pre',
attr: { id: 'demo', class: ['foo', 'bar'] },
child: [{ node: 'text', text: 'foo' }]
},
{
node: 'element',
tag: 'pre',
attr: { id: 'output', class: 'goo' },
child: [{ node: 'text', text: 'goo' }]
},
{
node: 'element',
tag: 'input',
attr: { id: 'execute', type: 'button', value: 'execute' }
}
]
}
]
}
Dependencies
repositry includes this at lib/ as git subtree.
CHANGELOG
1.0.2
fix #16 with merge #17
1.0.1
fix #14
before 1.0.0
Basically inline tag is melted into text
Input, textarea, image tags are act like block tag
License
MIT
HomePage
Repository