2012年7月30日

XMLで記述したメモをフォルダツリー風に表示(1)

XMLで階層構造で記述されたメモを、フォルダツリー風に整形して表示します。
階層は無制限、フォルダ名には配下のフォルダ数を括弧で表記。

メモは普通のエディタで記述します。記述ルールは以下のとおり。
・ルートのタグは<top>にします。他に使用するタグは<c><o><t>の3つ。
・<c>と<o>はフォルダ名、<t>は本文です。
・<c>は初期状態で閉じたフォルダ、<o>は開いたフォルダを表します。
・<t>にはHTMLのタグが使えます。

このルールに従って記述するとこうなります。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="tree.xsl" type="text/xsl"?>
 

食費比較
  安いか高いかはカロリーを基準にしている
  白米
    一番安い。しかし同じ食べ方だと飽きやすい。
  
  冷凍うどん
    冷凍はかなり安く買える。素うどん続けても飽きにくい。
  
  パスタ
    乾麺自体はかなり安いが、素パスタで食べる訳にもいかない。
 
       何か和えたりすると結局高くつく。
    
  
  食パン
    高い。同じ食べ方は飽きる。
  



これをブラウザで表示させると、



画像上がブラウザで開いた初期状態、下がクリックして展開した状態です。
このようにXMLを整形して表示させるため、別途フォルダ画像とXSLファイルが必要です。
フォルダ画像は適当に用意して[open.gif],[close.gif]という名前にします。
XSLファイルは以下の内容を[tree.xsl]という名前にして保存。 エンコードは[*.xml]、[*.xsl]共にUTF-8。他のエンコードを使用するならencoding="UTF-8"を変更。


ツールやwikiの使用が制限されるなど、環境が限定される客先での情報共有で役立つかもしれません。

ただし、複数人でxmlを同時編集すると内容を壊してしまう危険があります。
またタグ構造は単純ですが、構造を壊すとすぐエラー表示になってしまいます。
ある程度のタグ打ちスキルは必須です。

※ソースコードが誤った表記になっていたため修正 2012.09.21