美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) >

類型分類:
科普知識(shí)
數(shù)據(jù)分類:

紫金橋軟件讀寫XML文件

發(fā)布日期:2022-04-26 點(diǎn)擊率:93

  • 關(guān)鍵詞:                                                                紫金橋軟件                                                                讀寫XML文件                                                                XML

  • 摘要:XML又名“可擴(kuò)展標(biāo)記語(yǔ)言”,它提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。這種統(tǒng)一性使得不同的軟件之間擁有一座通訊橋梁。XML廣泛應(yīng)用于自動(dòng)控制領(lǐng)域,因此在使用不同編程語(yǔ)言、組態(tài)工具時(shí)經(jīng)常需要解析XML格式文件。本文講述如何使用紫金橋軟件來(lái)讀取XML文件。


一、概述

XML又名“可擴(kuò)展標(biāo)記語(yǔ)言”,它提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。這種統(tǒng)一性使得不同的軟件之間擁有一座通訊橋梁。XML廣泛應(yīng)用于自動(dòng)控制領(lǐng)域,因此在使用不同編程語(yǔ)言、組態(tài)工具時(shí)經(jīng)常需要解析XML格式文件。本文講述如何使用紫金橋軟件來(lái)讀取XML文件。

二、ObXml組件簡(jiǎn)介

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

ObXml組件用于解析或生成XML文件。使用Load函數(shù)載入XML文件或直接創(chuàng)建XML文件后,所有關(guān)于文件的修改操作都是針對(duì)內(nèi)存數(shù)據(jù)的修改,在使用Save函數(shù)或SaveAs函數(shù)之后才會(huì)將修改的結(jié)果保存至硬盤。

每個(gè)XML結(jié)點(diǎn)以及結(jié)點(diǎn)屬性均對(duì)應(yīng)一個(gè)整型標(biāo)識(shí)號(hào),標(biāo)識(shí)號(hào)是在組件讀取XML(新建XML)后動(dòng)態(tài)生成的,作為執(zhí)行組件各種操作函數(shù)的參數(shù)以定位結(jié)點(diǎn)或結(jié)點(diǎn)屬性。因?yàn)闃?biāo)識(shí)號(hào)是動(dòng)態(tài)生成的,并非XML文件自帶信息,每次使用組件打開(或新建)XML文件時(shí)同一結(jié)點(diǎn)的標(biāo)識(shí)號(hào)可能會(huì)不同,因此它只能在運(yùn)行時(shí)臨時(shí)獲取并使用,當(dāng)組件關(guān)閉后,這些標(biāo)識(shí)將失去意義。

組件實(shí)現(xiàn)的功能:

1)讀取已存在的XML文件,遍歷所有結(jié)點(diǎn),讀寫結(jié)點(diǎn)名字、結(jié)點(diǎn)文本、結(jié)點(diǎn)屬性,讀寫聲明語(yǔ)句。

2)創(chuàng)建新的XML文件并保存。

注意事項(xiàng):

1)無(wú)法讀取或?qū)懭?/span>XML文件中的注釋語(yǔ)句。

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

三、工程示例

制作一個(gè)可以讀取XML文件的工程,主畫面包含兩部分:左側(cè)為一個(gè)樹形控件,用于顯示所有XML結(jié)點(diǎn);右側(cè)為一個(gè)結(jié)點(diǎn)屬性窗口,當(dāng)點(diǎn)擊樹形控件上的不同結(jié)點(diǎn)時(shí),屬性窗口顯示對(duì)應(yīng)結(jié)點(diǎn)的所有信息:結(jié)點(diǎn)名、結(jié)點(diǎn)文本、結(jié)點(diǎn)標(biāo)識(shí)、結(jié)點(diǎn)路徑、屬性列表,其中屬性列表包含每個(gè)屬性的屬性名、屬性文本、屬性標(biāo)識(shí)。效果圖如下:


1引入組件

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

在組態(tài)界面打開子圖選擇畫面,在左側(cè)選擇“windows控件”一項(xiàng),如下圖所示:


點(diǎn)擊右上方菜單“文件->安裝子圖庫(kù)”,如下圖所示:


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


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


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

2前期準(zhǔn)備

創(chuàng)建一個(gè)窗口,命名為“win_main”。創(chuàng)建內(nèi)部對(duì)象:

創(chuàng)建一個(gè)XML組件,命名為“w_xml”。

創(chuàng)建一個(gè)按鈕,文本改成“讀取”。

創(chuàng)建一個(gè)文本框,命名為“w_editFileName”。

創(chuàng)建一個(gè)樹形控件,命名為“w_tree”。

完成后的畫面:


創(chuàng)建窗口,命名為“win_nodeProperty”,用于顯示結(jié)點(diǎn)信息,其內(nèi)部對(duì)象如下:

創(chuàng)建四個(gè)文本框,分別命名為“w_edtName”、“w_edtKey”、“w_edtText”、“w_edtPath”。

創(chuàng)建一個(gè)自由報(bào)表,命名為“w_frptAttrib”,設(shè)置為3列,列名為“屬性名”、“屬性文本”、“屬性key”。若干靜態(tài)文本,完成后的畫面如下圖所示:


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函數(shù)的聲明如下


fun_ToTree函數(shù)體如下:

//Function name: fun_ToTree

int nNodeTemp = 0;

string strNodeTemp = "";

//設(shè)置樹控件結(jié)點(diǎn)文本:

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

//XML結(jié)點(diǎn)標(biāo)識(shí)保存在對(duì)應(yīng)的樹控件結(jié)點(diǎn)中:

#win_tree.SetNodeData(strFatherKey,nNode);

nNodeTemp = #win_xml.GetFirstChildNode(nNode);

while nNodeTemp>0 do

//在樹控件上增加一個(gè)子結(jié)點(diǎn):

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

//遞歸調(diào)用:

fun_ToTree(nNodeTemp,strNodeTemp);

nNodeTemp = #win_xml.GetNextNode(nNodeTemp);

endwhile

這個(gè)函數(shù)使用遞歸算法遍歷XML結(jié)點(diǎn)信息。

l 進(jìn)入窗口腳本:

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

l 樹形控件腳本:

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

fun_onLbtnDown()

fun_onLbtnDown()函數(shù)體如下:

int nData = -1;

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

nData = #win_tree.GetCurSelNodeData();

//刷新屬性信息窗口:

#win_nodeProperty.fun_ShowProperty(#win_xml,nData);

endif

fun_ShowProperty函數(shù)聲明:


fun_ShowProperty函數(shù)體:

#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);//斜杠作為路徑分隔符

//向上遍歷生成本結(jié)點(diǎn)的路徑名:

nNodeTemp = nNode;

strPath = #pXml.GetNodeName(nNode);

while nNodeTemp>0 do

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

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

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

推薦產(chǎn)品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        成人sese在线| 免费人成黄页网站在线一区二区| 国产精品系列在线播放| 欧美精品一区二区精品网| 国产一区不卡在线观看| 亚洲综合免费观看高清完整版| 欧美日韩三级视频| 国产精品二区在线| 九九在线精品视频| 中文字幕中文乱码欧美一区二区| 五月天综合网| 91在线观看成人| 无码av中文一区二区三区桃花岛| 欧美老年两性高潮| 成人开心网精品视频| 成人激情小说乱人伦| 成人9ⅰ免费影视网站| 国产精品亚洲一区二区三区在线| 激情深爱一区二区| 秋霞电影网一区二区| 免费在线观看视频一区| 成人网页在线观看| 狠狠色综合日日| 99久久精品免费看| 国产91精品露脸国语对白| 蜜臀久久99精品久久久久久9 | 国产日韩视频一区二区三区| 在线亚洲+欧美+日本专区| 97se亚洲综合| caoporn国产精品| 国产福利不卡视频| 韩国中文字幕2020精品| 91在线国产观看| 亚洲精品在线免费| 天天综合狠狠精品| 日韩三级电影网址| 欧美日韩电影在线| 欧美国产日本韩| 中文字幕免费不卡在线| 水蜜桃久久夜色精品一区的特点| 亚洲精品成人在线| 亚洲欧美日韩国产成人精品影院| 亚洲日本在线天堂| 中文av字幕一区| 综合久久给合久久狠狠狠97色 | 国产麻豆精品95视频| 91精品国产一区二区三区动漫 | 国产精品免费视频一区| 老司机午夜精品| 免费一级欧美片在线观看| 99久久精品免费精品国产| 伊人色综合影院| 最新国产精品久久| 久久精品一区二区三区四区| 久久久久久久电影| 国产精品丝袜久久久久久app| 日韩av一级电影| 久久99热99| 久久99九九| 亚洲一区二区三区精品视频| 亚洲免费精品视频| 国产亚洲综合在线| 国产精品一二二区| 中文精品视频一区二区在线观看| 国产精品美女一区二区三区| 国产91精品一区二区麻豆亚洲| 伊人久久av导航| 亚洲三级在线免费观看| 国产成人小视频| 色综合激情五月| 欧美精选一区二区| 日韩中文字幕一区二区三区| 久久精品午夜一区二区福利| 亚洲精品一区二区三区在线观看| 亚洲欧美偷拍三级| 2019国产精品视频| 欧美成人a视频| 综合久久国产九一剧情麻豆| aaa国产一区| 欧美一级电影网站| 狠狠v欧美v日韩v亚洲ⅴ| 中文字幕人成一区| 亚洲一区二区精品久久av| 国产日本一区二区三区| 久久久www免费人成精品| 丰满放荡岳乱妇91ww| 欧美日本不卡视频| 久久精品国产一区二区三 | 久久女同性恋中文字幕| 国产激情偷乱视频一区二区三区 | 国产人久久人人人人爽| thepron国产精品| 日韩欧美高清dvd碟片| 一区二区三区在线看| 国产91丝袜在线播放九色| 欧美日韩免费不卡视频一区二区三区| 亚洲二区在线视频| 91精品国自产在线观看 | 亚洲视频网在线直播| 国产欧美日韩一区| 一区精品在线播放| 久久偷窥视频| 欧美成人艳星乳罩| 国产一区不卡在线| 日产精品久久久一区二区| 日韩一级在线观看| 国产精品99久久久久久宅男| 制服丝袜在线91| 三级精品在线观看| 中文字幕欧美日韩一区二区| 日韩电影免费在线看| 91成人免费网站| 紧缚捆绑精品一区二区| 欧美一区2区视频在线观看| 亚洲成a人片综合在线| 亚洲巨乳在线观看| 久久精品国产亚洲a| 日韩一卡二卡三卡四卡| 91久久精品一区二区别| 亚洲视频狠狠干| 一区二区三区|亚洲午夜| 蜜桃视频在线观看一区| 日韩亚洲欧美中文三级| www.欧美色图| 亚洲天堂a在线| 中文字幕久精品免| 成人午夜免费视频| 久久精品日产第一区二区三区高清版 | 麻豆精品蜜桃一区二区三区| 亚洲成人午夜电影| 91精品国产综合久久久久久久久久| av成人老司机| 亚洲一区在线电影| 欧美精品v国产精品v日韩精品| 91色在线porny| 亚洲成人自拍网| 在线成人av网站| 久久综合入口| 国产原创一区二区| 国产精品国产三级国产aⅴ中文| 成人18精品视频| 亚洲日本青草视频在线怡红院| 亚洲一区影院| 成人一道本在线| 亚洲精品高清在线观看| 777午夜精品免费视频| 福利视频一区二区三区| 国产日韩精品一区二区三区| 久久久福利视频| 免费成人你懂的| 国产性色一区二区| 亚洲视频在线观看日本a| 成人国产精品免费观看| 一区二区三区欧美视频| 欧美一区二区大片| 亚洲精品乱码久久久久久蜜桃91| 丁香婷婷综合网| 天天色 色综合| 国产色综合一区| 精品视频一区 二区 三区| 蜜桃91丨九色丨蝌蚪91桃色| 国产欧美日韩在线| 欧美日韩免费观看一区二区三区| 精品亚洲欧美日韩| 亚洲成人tv网| 久久久久久久久岛国免费| 欧美在线高清视频| 成人av网站大全| 日本成人在线一区| 亚洲人123区| wwwwww.欧美系列| 欧美日韩一区国产| 亚洲黄色一区二区三区| 91麻豆精品秘密入口| 久久精品国产秦先生| 亚洲国产一区二区a毛片| 欧美少妇性性性| 欧美日韩电影一区二区| 日本伊人色综合网| 国产精品精品国产色婷婷| 欧美一二三四区在线| 在线免费精品视频| 青娱乐一区二区| 国产一区二区成人久久免费影院| 一区二区三区成人| 国产女人18毛片水真多成人如厕| 欧美丰满高潮xxxx喷水动漫| 亚洲一二三区精品| 青娱乐国产91| 农村寡妇一区二区三区| 国产精品一 二 三| 91久久精品www人人做人人爽| 国产福利精品导航| 久久99这里只有精品| 日本va欧美va精品| 亚洲va欧美va人人爽午夜 | 成人黄色a**站在线观看| 激情亚洲综合在线| 美女高潮久久久| 日韩二区三区在线观看|