ZeBeVogue別館 このページをアンテナに追加 RSSフィード

2013年03月08日

node.jsでのXML2JSONとXPath

JavaScriptだとJSONが扱いやすいですが、XMLを使う場合も少なくありません。

node.jsXMLJSON形式にする方法と、XPathノードを取得する方法を調べてみました。

node-xml2js

名前の通りXMLJSONに変換できます。

勿論、普通にJavaScriptオブジェクトとしてアクセスできます。

var xml2js = require('xml2js');
var fs = require('fs');

var parser = new xml2js.Parser();
fs.readFile(__dirname + '/sample.xml', function(err, data) {
	parser.parseString(data, function(err, result) {
		console.dir(result);
		console.dir(result.root.item[0]);
		console.dir(JSON.stringify(result));
	});
});

libxmljs

インストール時にネイティブバイナリを作るので、処理が高速です。

DOMの操作や、XPathでのノードの取得ができます。

var libxmljs = require('libxmljs');
var fs = require('fs');

fs.readFile(__dirname + '/sample.xml', function(err, data) {
	var xmlDoc = libxmljs.parseXml(data);
	console.log(xmlDoc.toString());
	console.log(xmlDoc.root().text());

	console.log(xmlDoc.get('//root/item[1]').attr('name').value());
});

投稿したコメントは管理者が承認するまで公開されません。

トラックバック - http://d.hatena.ne.jp/zebevogue/20130308/1362707814
リンク元
人気の記事

『d.hatena.ne.jp』 の人気エントリー - はてなブックマーク

1. CentOS 5.8にNode.jsをインストール - ZeBeVogue別館
2. meta の viewport - ZeBeVogue別館
3. jQueryで複数のイベントを割り当てる - ZeBeVogue別館
4. MacでPutty形式の秘密鍵を変換する - ZeBeVogue別館
5. DropboxのDatastore APIをさっそく使ってみた - ZeBeVogue別館
6. ChromeでAccess-Control-Allow-Originを停止させつつ、別アプリとして動かす - ZeBeVogue別館
7. Smarty で携帯絵文字 - ZeBeVogue別館
8. ExpressJSでのバリデーション(express-validator) - ZeBeVogue別館
9. Twitter Bootstrapのカルーセルをキーボードとスワイプで操作 - ZeBeVogue別館
10. PhantomJSでスクリーンショットを撮る&HTML2PDF - ZeBeVogue別館
11. PHPで簡単XPath(ATOM/RSS1.0) - ZeBeVogue別館
12. Node.jsでAmazon S3にアップロードする方法 - ZeBeVogue別館
13. ApacheとNode.jsを連携させる - ZeBeVogue別館
14. neu.Nodeを触ってみました - ZeBeVogue別館
15. PDFKitを使ってNode.jsからPDFを作成する - ZeBeVogue別館
16. gruntでJavaScript/CSSを結合・minify - ZeBeVogue別館
17. node.jsからPhantomJSを使ってPDFを生成する - ZeBeVogue別館
18. Node.js/ExpressJSでのファイルのアップロード - ZeBeVogue別館
19. Node.jsでjQueryを利用する - ZeBeVogue別館
20. Node.js/PHPでの様々な文字列ハッシュの生成 - ZeBeVogue別館
21. node.jsのMVCフレームワークSails.jsを使ってみた - ZeBeVogue別館
22. ExpressJSのルーティングの自動化(Node.js) - ZeBeVogue別館
23. nodemailerでNode.jsからメールを送る - ZeBeVogue別館
24. PhalconのWebToolsを使ってみる - ZeBeVogue別館
25. Titaniumでadmobを利用する(Android編) - ZeBeVogue別館
26. ImageMagickでGIFアニメを作る - ZeBeVogue別館
27. Node.jsでの画像処理 - ZeBeVogue別館
28. reveal.jsで格好いいプレゼンを作ってみた - ZeBeVogue別館
29. nodeコマンド以外の起動コマンド(node-dev/forever/npm start/npm test) - ZeBeVogue別館
30. ZeBeVogue別館