close

這篇是給已經有Labview XML Tool基礎的人,

Labview XML Tool基本上做的都還算不錯,如果你有過其他平台之XML開發經驗的話會更好上手

我在處裡Text Node的時候(C#叫做Inner Text)遇到了些問題,因此留個紀錄與分享。

 

新增Text Node沒有問題

 

但是在取代Text Node的時候,發現沒有Replace Text Node這個功能,

應該會有人想問說「用Node Value不就解決了?」

 

一切的問題就是源自於此,Node Value修改之後,並不會被存起來,

查看NI的網站之後,這個Value似乎只會被作為讀出,並不會寫入 (那為什麼要有 Write Function....)

 

佛說有問題,就是沒有問題。工程師說,能解決的問題,都不是問題。

爬過許多文章及遇過諸多Bug後,

NI論壇上有人討論到這些,但在使用上的功能並不夠完整,

網址中的範例檔案,是透過重新建構一個子節點(Child Node)並且創造一個新的Text Node

但範例檔案並不夠完整,僅能針對沒有子節點(Child Node)與屬性(Attribute)的情況進行修改,

如果你的節點具有子節點或者屬性標籤的話,在範例檔中會直接消失。

 

因此,我將範例檔案修改後,重新增加子節點與屬性標籤的複製,如此一來才算完整的完成Text Node的修改。

程式區塊大致如下

 

1.讀取並找到要修改的子節點,創造一個新的且同名的節點

 

2.判定有沒有子節點

 

3.如果有子節點,則把所有子節點新增到新建立的節點底下

 

如果節點名稱為"#text"的時候(Labview 預設的Text Node Name) 則不進行複製,因為那正是我們要修改的東西。

 

4. 判定有無屬性標籤(Attributes),如果有,則在新節點創造一樣的屬性標籤

 

 

5. 寫入想要的Text Node,並將新節點取代舊節點,最後輸出。

 

以上就大功告成了,完整程式架構請點我下載程式請點我


 

arrow
arrow

    Vincent 發表在 痞客邦 留言(0) 人氣()