1

OpenLaszlo XMLデータセットのノードに新しい属性をどのように追加しますか?

4

1 に答える 1

1

これを行う方法は、lz.datapointer.setNodeAttribute()関数を使用することです。ノードにまだ表示されていない属性名でsetNodeAttribute()関数を使用すると、新しい属性名が作成されます。

以下のサンプルOpenLaszloアプリケーションでは、プログラムのコンパイル後に[displayXML]というタイトルのボタンを押すと、変更が行われる前のXMLデータセットに「fav_saying」属性が含まれていないことがわかります。

[updateAttribute]ボタンをクリックしてsetNodeAttribute()メソッドを介してHomerのお気に入りのことわざを追加した後、[displayXML]ボタンをもう一度クリックすると、「fav_saying」という属性がXMLデータセットに追加されていることがわかります。 。

<canvas height="665" width="1000" layout="axis: x" debug="true">

<dataset name = "myData">
  <myXML>
      <person firstname = "Homer" lastname = "Simpson" />
      <person firstname = "Marge" lastname = "Simpson" />
      <person firstname = "Montgomery" lastname = "Burns "/>
  </ myXML>
</ dataset>

<button text = "displayXML">

<handler name="onclick">
  Debug.write(canvas.myData.serialize());
</handler>

</ button>

<button text = "updateAttribute">

<handler name="onclick">  

  var dp = canvas.myData.getPointer(); // get datapointer to XML data
  dp.setXPath('myXML/person[@firstname="Homer"]'); // set xpath to Homer Simpson

  dp.setNodeAttribute('fav_saying', 'DOH!');

</handler>

</ button>

</キャンバス>

また、setNodeAttribute()を複数回呼び出しても、「fav_saying」属性が追加されないこともわかります。プログラムが毎回異なる値を発言に使用した場合、「fav_saying」属性の値は変更されますが、「fav_saying」属性は1つだけになります。

于 2013-02-25T22:43:57.930 に答える