データポインタ

XMLデータのなかから個々のデータを取り出すにはデータポインタを使います。データパスと違ってデータポインタは一つのデータのみを指定します。

下記はデータポインタを使って全データを表示した例。XMLデータからいったん取り出した値をアプリ全体で使いまわしたいときは<canvas>直下に<attribute>を配置して、そこに値を代入しておけばOKです。

この内容を表示するためには Adobe Flash Plugin が必要です。
(OpenLaszlo4.6.1/swf8)

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
 
  <text id="txt" multiline="true"/>
 
  <dataset name="ds" >
    <data sei='織田' mei='信長'/>
    <data sei='豊臣' mei='秀吉'/>
    <data sei='徳川' mei='家康'/>
  </dataset>
 
  <datapointer xpath="ds:/">
    <handler name="ondata">
      this.selectChild();
      do{
        var sei = this.xpathQuery('@sei');
        var mei = this.xpathQuery('@mei');
        this.disp(sei + mei);
      }while(this.selectNext());
    </handler>
    <method name="disp" args="d">
      txt.addText("こんにちは" + d + "さん\n");
    </method>
  </datapointer>
 
</canvas>
◆上記コードのプチ解説:

<dataset name="ds" >・・・・・・・・・(1)
  <data sei='織田' mei='信長'/> ・・・(2)
  <data sei='豊臣' mei='秀吉'/> ・・・(3)
  <data sei='徳川' mei='家康'/> ・・・(4)
</dataset>

上記XMLデータに対するデータポインタの動きは、

<datapointer xpath="ds:/"> ・・・【XMLデータdsのルートつまり(1)を指す】
  <handler name="ondata">
    this.selectChild();  ・・・・【XMLデータの階層を一つ下がる。つまり(2)を指す】
    do{
      var sei = this.xpathQuery('@sei'); ・・・【sei属性値を取得】
      var mei = this.xpathQuery('@mei'); ・・・【mei属性値を取得】
      this.disp(sei + mei);・・・・・・・・・・【sei+meiを引数として、dispメソッドを実行】
    }while(this.selectNext()); ・・・・・・・・【XMLデータの同一階層の次のデータに移動。つまり今が(2)なら(3)へ】
  </handler>
    ・
    ・
    ・
</datapointer>

* selectChild()、selectParent()はXMLデータ階層の親子方向のポインタ移動。
* selectNext()、selectPrev()はXMLデータ階層の兄弟方向のポインタ移動。
dp.txt · 最終更新: 2009/11/16 18:01 by ason
Copyright © 2008~ずっと ason(minamotonoason@gmail.com)

chuumap 中小企業ツイッターマップ 製造、加工、卸などB2B主体の個人事業者、中小企業のツイッターを、グーグルマップの住所の位置に正確に表示。
tentwi 店舗でツイート 飲食店、販売店など、一般消費者向けの店舗を構えるお店ツイッターを、グーグルマップの住所の位置に正確に表示。
廃句ったー あなたのツイッターの最近のツイートから廃句もとい俳句を生成。
みかけったー 超人気!あなたのツイッターの最近のツイートからみかけの年齢と性別を診断。
キキキーったー 最近のツイートからキーの使用回数をしらべます。
SLOTTER(すろったー) あなたのツイッターのタイムラインのアイコンでスロット。FLASHゲーム。
MultiLangTweet 一度に48ヶ国語に翻訳してツイート。
英訳ったー 英訳または日本語訳してツイート。
バンドメンバー募集サイト シンプルなバンドメンバー募集サイト。
CMS総合デモサイト 有名オープンソースCMS、EC、SNS、Wikiを一度に全部体験できる総合デモサイト
ビズロック BizRock(ビズロック)~音楽ライブでプレゼン!情熱型ビジネス交流会