HSONはHTMLをJSONに似たフォーマットで書くためのライブラリです。
クライアントサイドのQuerySelectorAllメソッドと同様の方法でデータをクエリすることもできます。
まずは以下のようにHSONをパースしてオブジェクトを作成します。
JSONとは異なり同一オブジェクト内に重複するキーが存在してもOKです。
use hson::{ Hson, Debug };
...
let data = r#"{
"div": {
"attrs": {
"class": [""],
"onClick": "doSomething"
},
"div": {
"p": {
"attrs": {},
"span": {
"text": "Hello"
}
},
"p": {}
},
"div": {
"component": "test",
"attrs": {},
"onClick": "componentDoSomething"
}
}
}"#;
let mut hson = Hson::new();
hson.parse(&data).unwrap();
hson.print_data(true);
このhsonオブジェクトをHTML文字列にするためにはstringifyメソッドを使います。
let s = hson.stringify();
println!("{}", &s);
またsearchメソッドを使うと要素を検索できます。
このメソッドはJavaScriptのQuerySelectorAllメソッドに似た操作感を持ってます。
let results = hson.search("div p").unwrap();
println!("\n{:?}\n", results);
この他にもHSONを使うと要素の挿入・削除などの操作や、要素を順番に処理する機能(イテレーション)などができます。
出展: