【发布时间】:2013-02-25 22:43:57
【问题描述】:
如何向 OpenLaszlo XML 数据集中的节点添加全新的属性?
【问题讨论】:
标签: openlaszlo lzx
如何向 OpenLaszlo XML 数据集中的节点添加全新的属性?
【问题讨论】:
标签: openlaszlo lzx
执行此操作的方法是使用 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">
数据集>
<handler name="onclick">
Debug.write(canvas.myData.serialize());
</handler>
按钮>
<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>
按钮>
您还将看到多次调用 setNodeAttribute() 不会添加额外的“fav_saying”属性。如果程序每次都为谚语使用不同的值,那么 'fav_saying' 属性中的值会改变,但仍然只有一个 'fav_saying' 属性。
【讨论】: