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 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>

</按钮>

</canvas>

您还将看到多次调用 setNodeAttribute() 不会添加额外的 'fav_saying' 属性。如果程序每次都使用不同的值作为说法,那么 'fav_saying' 属性中的值会改变,但仍然只有一个 'fav_saying' 属性。

于 2013-02-25T22:43:57.930 回答