中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產品分類

當前位置: 首頁 >

類型分類:
科普知識
數據分類:

紫金橋軟件讀寫XML文件

發布日期:2022-04-26 點擊率:90

  • 關鍵詞:                                                                紫金橋軟件                                                                讀寫XML文件                                                                XML

  • 摘要:XML又名“可擴展標記語言”,它提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。這種統一性使得不同的軟件之間擁有一座通訊橋梁。XML廣泛應用于自動控制領域,因此在使用不同編程語言、組態工具時經常需要解析XML格式文件。本文講述如何使用紫金橋軟件來讀取XML文件。


一、概述

XML又名“可擴展標記語言”,它提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。這種統一性使得不同的軟件之間擁有一座通訊橋梁。XML廣泛應用于自動控制領域,因此在使用不同編程語言、組態工具時經常需要解析XML格式文件。本文講述如何使用紫金橋軟件來讀取XML文件。

二、ObXml組件簡介

在紫金橋軟件中,使用ObXml組件可以方便的讀寫XML文件。

ObXml組件用于解析或生成XML文件。使用Load函數載入XML文件或直接創建XML文件后,所有關于文件的修改操作都是針對內存數據的修改,在使用Save函數或SaveAs函數之后才會將修改的結果保存至硬盤。

每個XML結點以及結點屬性均對應一個整型標識號,標識號是在組件讀取XML(新建XML)后動態生成的,作為執行組件各種操作函數的參數以定位結點或結點屬性。因為標識號是動態生成的,并非XML文件自帶信息,每次使用組件打開(或新建)XML文件時同一結點的標識號可能會不同,因此它只能在運行時臨時獲取并使用,當組件關閉后,這些標識將失去意義。

組件實現的功能:

1)讀取已存在的XML文件,遍歷所有結點,讀寫結點名字、結點文本、結點屬性,讀寫聲明語句。

2)創建新的XML文件并保存。

注意事項:

1)無法讀取或寫入XML文件中的注釋語句。

2)能夠識別UTF-8GBKANSI編碼格式。無法識別UnicodeUnicode big endian編碼格式。

三、工程示例

制作一個可以讀取XML文件的工程,主畫面包含兩部分:左側為一個樹形控件,用于顯示所有XML結點;右側為一個結點屬性窗口,當點擊樹形控件上的不同結點時,屬性窗口顯示對應結點的所有信息:結點名、結點文本、結點標識、結點路徑、屬性列表,其中屬性列表包含每個屬性的屬性名、屬性文本、屬性標識。效果圖如下:


1引入組件

如果在子圖中已存在該組件,可以忽略此步驟,直接進入下一步。

在組態界面打開子圖選擇畫面,在左側選擇“windows控件”一項,如下圖所示:


點擊右上方菜單“文件->安裝子圖庫”,如下圖所示:


在彈出的文件選擇對話框中找到紫金橋安裝目錄下的Wizard文件夾,并選擇“ObXml.dll”文件,然后點擊“打開”按鈕。


然后在彈出的畫面中輸入名字“XML”,然后點擊“確定”按鈕,如下圖:


這樣,XML組件就可以使用了。

2前期準備

創建一個窗口,命名為“win_main”。創建內部對象:

創建一個XML組件,命名為“w_xml”。

創建一個按鈕,文本改成“讀取”。

創建一個文本框,命名為“w_editFileName”。

創建一個樹形控件,命名為“w_tree”。

完成后的畫面:


創建窗口,命名為“win_nodeProperty”,用于顯示結點信息,其內部對象如下:

創建四個文本框,分別命名為“w_edtName”、“w_edtKey”、“w_edtText”、“w_edtPath”。

創建一個自由報表,命名為“w_frptAttrib”,設置為3列,列名為“屬性名”、“屬性文本”、“屬性key”。若干靜態文本,完成后的畫面如下圖所示:


3腳本邏輯

l “讀取”按鈕中的腳本如下

//載入文件:

if !#win_xml.Load(#w_edtFileName.Text) then

MsgBox("讀取文件失敗!");

return;

endif

//XML信息顯示在樹形控件上:

int nRoot = #win_xml.GetRootNode();

string strKey = "";

#win_tree.DeleteAllNode();

if nRoot>0 then

strKey = #win_tree.AddSubItemTail("","");

fun_ToTree(nRoot,strKey);

endif

l fun_ToTree函數的聲明如下


fun_ToTree函數體如下:

//Function name: fun_ToTree

int nNodeTemp = 0;

string strNodeTemp = "";

//設置樹控件結點文本:

#win_tree.SetNodeTxt(strFatherKey, #win_xml.GetNodeName(nNode) + " (" + fun_GetAttribInfo(nNode) + ")");

//XML結點標識保存在對應的樹控件結點中:

#win_tree.SetNodeData(strFatherKey,nNode);

nNodeTemp = #win_xml.GetFirstChildNode(nNode);

while nNodeTemp>0 do

//在樹控件上增加一個子結點:

strNodeTemp = #win_tree.AddSubItemTail(strFatherKey,"");

//遞歸調用:

fun_ToTree(nNodeTemp,strNodeTemp);

nNodeTemp = #win_xml.GetNextNode(nNodeTemp);

endwhile

這個函數使用遞歸算法遍歷XML結點信息。

l 進入窗口腳本:

OpenChild("win_nodeProperty");//打開屬性信息窗口

l 樹形控件腳本:

打開樹形控件屬性畫面,點擊“全局腳本”按鈕,在彈出的畫面中選擇“單擊腳本”,添加如下代碼:

fun_onLbtnDown()

fun_onLbtnDown()函數體如下:

int nData = -1;

if #win_tree.GetCurSelNodeKey()<>"" then

nData = #win_tree.GetCurSelNodeData();

//刷新屬性信息窗口:

#win_nodeProperty.fun_ShowProperty(#win_xml,nData);

endif

fun_ShowProperty函數聲明:


fun_ShowProperty函數體:

#w_edtKey.Val = nNode;

#w_edtName.Text = #pXml.GetNodeName(nNode);

#w_edtText.Text = #pXml.GetNodeText(nNode);

string strPath = "";

int nNodeTemp = 0;

string strS = AscToChar(47);//斜杠作為路徑分隔符

//向上遍歷生成本結點的路徑名:

nNodeTemp = nNode;

strPath = #pXml.GetNodeName(nNode);

while nNodeTemp>0 do

<span style="font-style:italic;font-family:

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      9000px;">

          欧美国产精品一区| 精品久久久久久久久久久久包黑料| 国产日韩欧美在线一区| 日韩三区在线观看| 91精彩视频在线| 91在线国内视频| 国产99精品国产| 国产福利91精品一区二区三区| 免费高清在线一区| 日韩av二区在线播放| 偷拍自拍另类欧美| 日韩极品在线观看| 日产国产欧美视频一区精品| 另类小说欧美激情| 国产一区二区三区在线观看精品 | 免费看日韩精品| 日本不卡在线视频| 九一久久久久久| 精品午夜久久福利影院| 国产一区二区三区| 不卡在线视频中文字幕| www..com久久爱| 91高清视频在线| 日韩欧美视频在线| 中文字幕国产一区| 天天综合网天天综合色| 国产一区二区中文字幕| 99国内精品久久| 欧美人成免费网站| 国产视频一区二区在线| 一卡二卡欧美日韩| 久久se精品一区精品二区| 成人avav在线| 91精品国产综合久久婷婷香蕉| 精品国产三级电影在线观看| 中文一区二区完整视频在线观看| 一区二区三区四区在线播放 | 亚洲猫色日本管| 亚洲午夜精品17c| 麻豆国产精品一区二区三区| 成人免费福利片| 9191成人精品久久| 日本一区二区免费在线观看视频| 亚洲一二三四久久| 国产呦萝稀缺另类资源| 色婷婷精品大在线视频| 日韩你懂的电影在线观看| 亚洲少妇最新在线视频| 久久综合综合久久综合| 一本大道综合伊人精品热热| 日韩欧美色综合| 国产午夜精品久久久久久久| 亚洲一区二区三区在线| 国产精品自拍在线| 欧美精品18+| 日本一区二区三区dvd视频在线 | 色综合色综合色综合色综合色综合 | 国产高清在线精品| 91精品国产欧美一区二区18| 国产精品久久久久久久久久久免费看 | 8v天堂国产在线一区二区| 日韩精品一区二区三区中文精品| 国产日韩欧美一区二区三区综合| 国产精品初高中害羞小美女文| 喷水一区二区三区| 99久久99久久精品免费看蜜桃 | 不卡一区在线观看| 精品视频一区二区不卡| 精品国产乱码久久久久久图片| 亚洲精品乱码久久久久久久久| 日韩影院免费视频| 成人av网站免费观看| 精品少妇一区二区三区视频免付费 | 欧美日韩一区久久| 国产精品成人一区二区三区夜夜夜| 日韩高清不卡一区二区| 欧美年轻男男videosbes| 亚洲欧洲色图综合| av资源网一区| 国产精品久久国产精麻豆99网站| 国产成人综合亚洲网站| 久久久精品2019中文字幕之3| 精品一区在线看| 欧美zozo另类异族| 久久不见久久见免费视频1| 欧美一区二区三区视频在线观看| 五月激情综合婷婷| 制服.丝袜.亚洲.另类.中文| 亚洲美女一区二区三区| 日韩女优制服丝袜电影| 亚洲成人av电影在线| 在线视频一区二区三| 国产精品免费视频一区| 麻豆国产欧美一区二区三区| 日韩福利视频网| 欧美精品v国产精品v日韩精品 | 国产日韩欧美精品一区| 麻豆91精品91久久久的内涵| 色94色欧美sute亚洲13| 欧美激情一区二区| 免费观看在线色综合| 美日韩一区二区三区| 欧美在线影院一区二区| 舔着乳尖日韩一区| 久久久噜噜噜久久中文字幕色伊伊| 久久久99精品久久| 久久99国产精品尤物| 久久影视一区二区| 成人国产精品免费网站| 久久精品人人爽人人爽| 国产suv精品一区二区三区| 久久综合久久综合久久综合| 国产一区二区0| 国产精品无码永久免费888| 91在线丨porny丨国产| 亚洲动漫第一页| 日韩欧美成人午夜| 粉嫩aⅴ一区二区三区四区五区| 自拍偷拍国产亚洲| 欧洲人成人精品| 天天射综合影视| 精品sm捆绑视频| 丰满白嫩尤物一区二区| 在线成人av影院| 国产99久久久国产精品潘金 | 成人动漫一区二区在线| 亚洲成年人影院| 国产亚洲精品免费| 在线播放欧美女士性生活| 白白色亚洲国产精品| 男人操女人的视频在线观看欧美| 国产精品久久久久四虎| 91精品国产综合久久精品性色| 成人国产在线观看| 久久99久久精品欧美| 亚洲国产婷婷综合在线精品| 国产精品三级久久久久三级| 91精品国产色综合久久ai换脸| 成人av资源站| 国产剧情一区二区| 美腿丝袜亚洲一区| 天天色 色综合| 亚洲自拍偷拍图区| 国产精品久久免费看| 精品国产在天天线2019| 91麻豆精品久久久久蜜臀| 91麻豆精品一区二区三区| 免费在线看一区| 日韩电影在线观看电影| 亚洲成a人片综合在线| 亚洲免费在线视频一区 二区| 久久精品欧美一区二区三区麻豆| 日韩欧美亚洲国产精品字幕久久久| 在线视频一区二区三区| 91黄视频在线| 91色九色蝌蚪| 91亚洲永久精品| 99久久亚洲一区二区三区青草| 国产精品1024久久| 国产成人免费视频一区| 韩国女主播成人在线| 另类综合日韩欧美亚洲| 美女网站一区二区| 蜜臀av性久久久久蜜臀av麻豆| 亚洲国产日日夜夜| 亚洲成人www| 免费日本视频一区| 亚洲制服丝袜av| 一区二区三区欧美| 亚洲国产一二三| 亚洲国产aⅴ天堂久久| 日韩精品视频网站| 麻豆成人综合网| 国内精品伊人久久久久av一坑| 狠狠久久亚洲欧美| 国产成人免费网站| 成人福利在线看| 色婷婷国产精品| 欧美精选一区二区| 久久综合色婷婷| 日韩毛片一二三区| 日韩精品一卡二卡三卡四卡无卡| 日本91福利区| 国产精品亚洲成人| 色综合天天综合| 欧美日本一区二区| 欧美v亚洲v综合ⅴ国产v| 久久久久久亚洲综合影院红桃| 亚洲国产精品激情在线观看| 亚洲婷婷在线视频| 日韩精品成人一区二区三区| 国产自产高清不卡| 99精品国产热久久91蜜凸| 欧美日韩1234| 欧美韩国日本不卡| 亚洲一卡二卡三卡四卡无卡久久| 久久精品理论片| 欧美自拍偷拍一区| 久久亚洲精品小早川怜子| 亚洲欧洲综合另类|