OpenLaszlo XML 데이터 세트의 노드에 새로운 속성을 어떻게 추가합니까?OpenLaszlo 플랫폼의 데이터 세트 노드에 새로운 속성을 어떻게 추가합니까?
답변
이렇게하는 방법은 lz.datapointer.setNodeAttribute() 함수를 사용하는 것입니다. 노드에 아직 나타나지 않은 속성 이름과 함께 setNodeAttribute() 함수를 사용하면 새 속성이 작성됩니다.
아래의 샘플 OpenLaszlo 응용 프로그램에서 프로그램을 컴파일 한 후 [displayXML] 버튼을 누르면 변경된 내용 앞에 "fav_saying"속성이 포함되지 않은 XML 데이터 세트가 표시됩니다.
[updateAttribute] 버튼을 클릭하여 setNodeAttribute() 메소드를 통해 Homer에 대한 좋아하는 말을 추가 한 다음 [displayXML] 버튼을 다시 클릭하면 'fav_saying'이라는 속성이 추가 된 것을 볼 수 있습니다 XML 데이터 세트에 추가합니다. = "MYDATA"
<canvas height="665" width="1000" layout="axis: x" debug="true">
< 세트 이름> 인 myXML>
< 인 FIRSTNAME = "홈런"
< />
< 사람 이름 성 = "심슨"= " 마지 "성 ="심슨 "/>
< 사람 firstnam E = "몽고메리"LASTNAME = "화상"/>
</인 myXML>
</셋>
< 버튼 텍스트 = "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>
</버튼>
</캔버스>
또한 setNodeAttribute 해당 다중 호출을() 속성을 'fav_saying'추가 추가하지 않습니다 볼 수 있습니다. 프로그램에서 매번 말에 대해 다른 값을 사용하면 'fav_saying'속성의 값이 변경되지만 여전히 'fav_saying'속성이 하나만 있습니다.