紅孔雀 このページをアンテナに追加 RSSフィード

2007-01-03 ajaxslt で文字列から DOM-Tree に変換する

[][][] ajaxslt で文字列から DOM-Tree に変換する

何らかの事情で文字列として XML データが渡されたとします。そのままでは DOM の関数が使えないので、パースして DOM-Tree に変換します。そのための手段として ajaxslt を利用する方法があります。


ajaxslt は JavaScript による XSLT の実装です。ajaxslt のプロジェクト・サイトは、元々は SouceForge にあったのですが、現在 Google Code に引っ越し中のようです:

そして ajaxslt に含まれる xmlParse という関数を使用することで、文字列として与えられた XML をパースして DOM-Tree に変換することができます。

ajaxslt にはいくつかの JavaScript ファイルが含まれていますが、今回の目的には misc.js と dom.js が必要となります。以下に xmlParse を使用したコードを示します*1

<html>
<head>
<script language="JavaScript" src="misc.js"></script>
<script language="JavaScript" src="dom.js"></script>
</head>
<body>
<script language="JavaScript">

// string 型の XML.
var xml_string = '<hoge piyo="fuga"><aaa bbb="ccc">XXX</aaa></hoge>'

// パースして DOM-Tree に変換.
var xml_tree = xmlParse(xml_string)

// 適当に DOM 関数を使う.
document.write(xml_tree.getElementsByTagName('aaa')[0].firstChild.nodeValue)
</script>
</body>
</html>

今回は「文字列として与えられた XML を DOM-Tree に変換する」ために ajaxslt の機能のほんの一部を利用したに過ぎません。正道ではない使い方をしたといえます。本来、ajaxslt は XSLT を行うためのライブラリであり、内部には XPath の実装も含まれます(XSLT の実装に使われるため)。

*1:動作確認は ajaxslt 0.4、FireFox 1.5、Internet Explorer 6 で行いました。