supercardになかったもので、LiveCodeが持っている機能としてXMLへの対応がある。
少しいじってみて、気がついたこと、わかったことを備忘録として記録しておく。
そもそもなぜXMLなのかという話になるのだが、LiveCodeを扱う中で、外部ファイルからのやりとりを考えたとき、カンマ区切り、TAB区切りなどのテキスト書類の他にあるものとしてXML書類が浮上してきたのだ。
カンマ区切り、TAB区切り共にLiveCodeに取り込んで使うのは難しくはない。どちらの形式にしろ日本語を使う以上はテキストをエンコード、デコードしないでは使えない。これはXML書類でも同じこと。ただ、カンマ区切り、TAB区切りの書類から取り込んだときは必要な数のグローバル変数を用意するか、フィールドなどに一旦退避させるかしなければならなかった。XMLからの取り込みではXMLツリーに取り込むことになるので、メモリー上に展開することが出来る事になるわけで、少し手間が減るのと、スピード上も有利になるのではないかと思われる。
ただし、XMLツリーはバイナリーレベルのようなので、いちいち変換が必要でこれはこれで面倒である。要は使い方次第ということかもしれないが、せっかく用意されている機能なので少し勉強してみたい。
- コマンド
- エスケープコード
- 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” のように。そうしないとスクリプトがエラーになる。 | |
relationship | sibling or child 兄弟として配置するか、子として配置するか。指定しなければchildで、子として配置される。 |
5ノードをコピーする revXMLCopyNode
revXMLMoveNode treeID,sourceNode,destinationNoce,location,relationship
treeID | ツリーID | |
sourceNode | コピーするノードへのパス | |
destinationNode | コピー先のノードのパス | |
location | コピーする位置。省略するとafter。先頭に入れるならberore これは必ず “でくくる。”before” のように。そうしないとスクリプトがエラーになる。 | |
relationship | sibling or child 兄弟として配置するか、子として配置するか。指定しなければchildで、子として配置される。 |
5ノードを削除する revXMLDeleteNode
revXMLDeleteNode treeID,nodeToDelete
treeID | ツリーID | |
nodeToDelete | 削除するノードへのパス | |
コメント