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

產品分類

當前位置: 首頁 >

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

紫金橋軟件讀寫XML文件

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

  • 關鍵詞:                                                                紫金橋軟件                                                                讀寫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;">

          欧美精品乱人伦久久久久久| 色综合久久久久久久久| 一区二区三区在线观看网站| 久久天天做天天爱综合色| 欧美日韩国产片| 欧美日韩高清一区二区| 欧美三片在线视频观看 | 欧美日韩一区国产| 欧美天堂亚洲电影院在线播放| 成人综合婷婷国产精品久久蜜臀| 免费观看30秒视频久久| 久久精品免费观看| 激情欧美一区二区| 国产jizzjizz一区二区| 99精品欧美一区| 在线免费av一区| 欧美日本免费一区二区三区| 欧美日韩国产高清一区二区三区| 欧美一区二区三区免费在线看 | 欧美成人精品3d动漫h| 亚洲精品一区二区三区香蕉| 精品第一国产综合精品aⅴ| 精品国产免费视频| 久久久蜜臀国产一区二区| 久久久国际精品| 自拍偷自拍亚洲精品播放| 亚洲综合男人的天堂| 三级一区在线视频先锋| 激情小说欧美图片| 99这里只有久久精品视频| 色婷婷精品大视频在线蜜桃视频 | 日韩av二区在线播放| 国产美女精品一区二区三区| 床上的激情91.| 欧美久久久久久久久久| 欧美精品一区二区久久久| 亚洲欧洲综合另类在线| 琪琪久久久久日韩精品| 成人激情视频网站| 欧美一区二区福利视频| 亚洲欧美国产高清| 久久99精品网久久| 色菇凉天天综合网| 久久精品综合网| 视频一区视频二区在线观看| 国产盗摄女厕一区二区三区| 欧美日韩国产精品成人| 国产欧美一区在线| 日本一不卡视频| 91免费观看视频| 精品国产91洋老外米糕| 亚洲无线码一区二区三区| 国产综合成人久久大片91| 欧美综合色免费| 国产精品欧美久久久久无广告| 一区二区三区高清| 成人午夜激情片| 国产日韩欧美精品在线| 久88久久88久久久| 7777精品伊人久久久大香线蕉经典版下载| 久久先锋影音av鲁色资源| 日日摸夜夜添夜夜添亚洲女人| 91视频免费观看| 亚洲丝袜制服诱惑| 国产999精品久久| 久久久777精品电影网影网 | 国产精品免费aⅴ片在线观看| 免费精品视频在线| 欧美久久一区二区| 亚洲一区二区欧美| 欧美亚洲综合网| 亚洲综合一二区| 91麻豆123| 夜夜夜精品看看| 欧美在线观看18| 亚洲伊人色欲综合网| 95精品视频在线| 亚洲日本一区二区三区| 91一区在线观看| 亚洲人成网站在线| 日本高清不卡aⅴ免费网站| 亚洲素人一区二区| 一本色道久久加勒比精品 | 精品视频在线视频| 视频一区中文字幕| 91超碰这里只有精品国产| 亚洲高清免费一级二级三级| 91老司机福利 在线| 亚洲曰韩产成在线| 欧美精品免费视频| 麻豆传媒一区二区三区| 欧美刺激脚交jootjob| 国产在线视频一区二区| 国产精品欧美经典| 欧美日韩在线播| 久久er精品视频| 国产丝袜在线精品| 99精品视频一区| 午夜精品久久久久久久久久| 3d动漫精品啪啪一区二区竹菊| 久久精品国产99久久6| 国产日韩综合av| 欧美三级一区二区| 精东粉嫩av免费一区二区三区| 国产人成亚洲第一网站在线播放 | 在线播放国产精品二区一二区四区| 午夜精品久久久久久| 欧美www视频| 成人一区二区三区| 午夜伦欧美伦电影理论片| 久久众筹精品私拍模特| 色999日韩国产欧美一区二区| 婷婷中文字幕综合| 国产精品乱码一区二区三区软件| 欧美三级蜜桃2在线观看| 国产一区二区福利视频| 亚洲蜜臀av乱码久久精品 | 色哟哟亚洲精品| 美女精品一区二区| 亚洲美女在线一区| 久久精品男人的天堂| 欧美午夜精品一区二区三区| 激情久久久久久久久久久久久久久久| 亚洲人成小说网站色在线| 精品国产a毛片| 欧美主播一区二区三区| 国产成人在线观看| 久久国产精品色婷婷| 一区二区三区国产豹纹内裤在线 | 亚洲一区二区三区免费视频| 国产精品视频看| 日韩欧美电影一区| 欧美午夜精品一区| 91久久精品国产91性色tv| 国产成人在线观看免费网站| 免费的国产精品| 亚洲午夜在线观看视频在线| 国产精品成人网| 久久久99精品免费观看| 337p粉嫩大胆噜噜噜噜噜91av| 91成人看片片| 在线观看日韩一区| 北条麻妃一区二区三区| 国产精品99久久久| 国产一区二区三区四区五区入口 | 中文字幕亚洲在| 国产精品盗摄一区二区三区| 久久久99免费| 久久一区二区视频| 26uuu亚洲综合色| 国产亚洲成年网址在线观看| 精品国产91乱码一区二区三区 | 91丨九色丨黑人外教| 成人黄色av网站在线| 成人免费视频视频在线观看免费| 国产呦萝稀缺另类资源| 美女视频黄频大全不卡视频在线播放 | 91精品国产91热久久久做人人| 欧美日韩中文精品| 制服丝袜亚洲播放| 欧美一级爆毛片| 精品成人一区二区三区| 国产欧美日韩麻豆91| 欧美国产一区二区| 亚洲欧美一区二区三区极速播放 | va亚洲va日韩不卡在线观看| av成人老司机| 色88888久久久久久影院野外| 欧洲亚洲精品在线| 欧美电影一区二区三区| 26uuuu精品一区二区| 国产三级三级三级精品8ⅰ区| 国产精品久久久一本精品 | 91精品国产综合久久久久久久| 日韩免费成人网| 国产欧美日本一区二区三区| 一区二区中文字幕在线| 亚洲一区二区av电影| 亚洲va欧美va天堂v国产综合| 日韩av电影免费观看高清完整版| 免费在线观看日韩欧美| 高清久久久久久| 日本久久一区二区| 久久夜色精品国产噜噜av| 亚洲精品一二三| 精品一区二区在线免费观看| 91在线你懂得| 日韩欧美成人一区二区| 国产欧美日韩一区二区三区在线观看| 一区二区三区中文字幕| 精品一区二区三区在线播放| 91碰在线视频| 欧美va亚洲va香蕉在线| 一区二区三区精品在线| 国产九色sp调教91| 51午夜精品国产| 亚洲免费观看在线视频| 国内精品视频666| 欧美精品免费视频| 亚洲精品亚洲人成人网|