2013-02-25 4 views

답변

1

이렇게하는 방법은 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'속성이 하나만 있습니다.