XML LiveCode備忘録

LiveCode

 supercardになかったもので、LiveCodeが持っている機能としてXMLへの対応がある。
 少しいじってみて、気がついたこと、わかったことを備忘録として記録しておく。
 そもそもなぜXMLなのかという話になるのだが、LiveCodeを扱う中で、外部ファイルからのやりとりを考えたとき、カンマ区切り、TAB区切りなどのテキスト書類の他にあるものとしてXML書類が浮上してきたのだ。
 カンマ区切り、TAB区切り共にLiveCodeに取り込んで使うのは難しくはない。どちらの形式にしろ日本語を使う以上はテキストをエンコード、デコードしないでは使えない。これはXML書類でも同じこと。ただ、カンマ区切り、TAB区切りの書類から取り込んだときは必要な数のグローバル変数を用意するか、フィールドなどに一旦退避させるかしなければならなかった。XMLからの取り込みではXMLツリーに取り込むことになるので、メモリー上に展開することが出来る事になるわけで、少し手間が減るのと、スピード上も有利になるのではないかと思われる。
 ただし、XMLツリーはバイナリーレベルのようなので、いちいち変換が必要でこれはこれで面倒である。要は使い方次第ということかもしれないが、せっかく用意されている機能なので少し勉強してみたい。

  1. コマンド
  2. エスケープコード
  3. revXMLTextで保存

1 ノードを追加する revXMLAddNode (親に子を加える)
 revXMLAddNode treeID,parentNode,nodeName,nodeContents,location

treeIDツリーID
parentNode追加する子の親(のパス)
nodeName子の名前。パスではなく、名前そのもの。enCodeすること。
nodeContents子の持つデータ(テキスト)
location追加する位置。省略するとafter。先頭に入れるならberore
これは必ず “でくくる。”before” のように。そうしないとスクリプトがエラーになる。

2 ノードを追加する revXMLInsertNode (兄弟を加える)
 revXMLInsertNode treeID,siblingode,nodeName,nodeContents,location

treeIDツリーID
siblingNode追加する兄弟(のパス)
nodeName追加するノードの名前。パスではなく、名前。enCodeする。
nodeContents追加するノードの持つデータ(テキスト)
location追加する位置。省略するとafter。先頭に入れるならberore
これは必ず “でくくる。”before” のように。そうしないとスクリプトがエラーになる。

3 ノードを追加する revXMLAppend (XMLテキストを加える)
 revXMLAppend treeID,parentNode,newXML

treeIDツリーID
parentNode追加する子の親(のパス)
newXML追加するXMLテキスト

XMLツリーにノード(要素)を加えるには上記3通りある。1と2はノードを追加する方法、3はXMLテキストによって追加する方法。
1は、親に、子を追加する。2は兄弟を追加する。ツリーIDの次のパラメータの下におくなら1を、並べておくなら2を選ぶことになる。
ロケーションを指定しないと、afterがでフォルトなので先頭に入れたいときはbeforeを指定する。このとき””でくくらないとスクリプトエラーになるので注意すること。

4ノードを移動する revXMLMoveNode
revXMLMoveNode treeID,sourceNode,destinationNoce,location,relationship

treeIDツリーID
sourceNode移動するノードへのパス
destinationNode移動先のノードのパス
location移動する位置。省略するとafter。先頭に入れるならberore
これは必ず “でくくる。”before” のように。そうしないとスクリプトがエラーになる。
relationshipsibling or child
兄弟として配置するか、子として配置するか。指定しなければchildで、子として配置される。

5ノードをコピーする revXMLCopyNode
revXMLMoveNode treeID,sourceNode,destinationNoce,location,relationship

treeIDツリーID
sourceNodeコピーするノードへのパス
destinationNodeコピー先のノードのパス
locationコピーする位置。省略するとafter。先頭に入れるならberore
これは必ず “でくくる。”before” のように。そうしないとスクリプトがエラーになる。
relationshipsibling or child
兄弟として配置するか、子として配置するか。指定しなければchildで、子として配置される。

5ノードを削除する revXMLDeleteNode
revXMLDeleteNode treeID,nodeToDelete

treeIDツリーID
nodeToDelete削除するノードへのパス

コメント

タイトルとURLをコピーしました