亚洲爆乳成AV人在线视菜奈实_欧美一进一出抽搐大尺度视频 _日本十八禁免费看污网站_国产一区二区怡红院_6080YY新视觉影院_蜜臀AV无码人妻精品_成人影院YY111111在线_成人欧美一区二区三区1314_少妇饥渴偷公乱A级无码

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
紫金橋軟件讀寫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-8、GBK、ANSI編碼格式。無法識別Unicode、Unicode 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、腳本邏輯

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

//載入文件:

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

  • 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結點信息。

  • 進入窗口腳本:

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

  • 樹形控件腳本:

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

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

nNodeTemp = #pXml.GetParentNode(nNodeTemp);

strPath = #pXml.GetNodeName(nNodeTemp) + strS + strPath;

endwhile

#w_edtPath.Text = strPath;

//生成屬性報表:

string strArrAttrinNames[];

int i = 0;

#w_frptAttrib.DelTailRow(#w_frptAttrib.RowCount());

#pXml.GetAttibNames(nNode,strArrAttrinNames);

#w_frptAttrib.AddRow(strArrAttrinNames.GetCount());

for i=0 to strArrAttrinNames.GetCount()

#w_frptAttrib.SetRowHeight(i+1,40);

#w_frptAttrib.SetTxt(1,i+1,strArrAttrinNames[i]);

#w_frptAttrib.SetTxt(2,i+1,#pXml.GetAttribTextEx(nNode,"",strArrAttrinNames[i]));

#w_frptAttrib.SetVal(3,i+1,#pXml.GetAttrib(nNode,"",strArrAttrinNames[i]));

next

#w_frptAttrib.SetInputFmtEdit(1,1,#w_frptAttrib.ColCount(),#w_frptAttrib.RowCount(),4);

其中fun_GetAttribInfo函數用于生成指定XML結點的屬性信息字符串,其函數聲明如下:

fun_GetAttribInfo函數體如下:

//Function name: fun_GetAttribInfo

string strArrAttribNames[];

int i = 0;

string strText = "";

string strS = AscToChar(34);//雙引號作為分隔符

if nNodeKey>0 then

#win_xml.GetAttibNames(nNodeKey,strArrAttribNames);

for i=0 to strArrAttribNames.GetCount()

strText = strText + " " + strArrAttribNames[i] + "="

+ strS + #win_xml.GetAttribTextEx(nNodeKey,"",strArrAttribNames[i]) + strS;

next

strText = StrTrimLeft(strText);

endif

RETURN strText;

四、結語

這個示例演示了如何使用ObXml組件讀取XML文件信息,如果想修改XML文件則可以調用ObXml組件中的相應函數,例如:bool SetRoot(string name,string text)用于設置或新建根結點;bool SetNodeName(int NodeKey,string NewName)用于設置結點名;bool SetAttrib(int NodeKey, string name, string Text)用于設置結點屬性;bool Save()用于保存文件。


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 紫金橋軟件技術有限公司
聯 系 人: 李磊
電  話: 0459-8151391-808
傳  真: 0459-8151391-804
地  址: 大慶市高新區服務外包產業園C-1座817室
郵  編: 163316
主  頁:
 
該廠商相關技術文摘:
跨平臺實時數據庫變量引用導航功能介紹
跨平臺實時數據庫 如何利用MODBUS仿真軟件測試MODBUS驅動
紫金橋跨平臺實時數據庫如何實現多屏顯示
紫金橋跨平臺軟實時數據庫Web服務器和數據服務器分離訪問的配置
紫金橋跨平臺軟件遠程采集RealInfo6.5
使用虛擬機做的工程實現跨網Web訪問
紫金橋軟件Microsoft Office Access 2003的ODBC數據源配置
紫金橋軟件閘門整體自動化監控系統
通過紫金橋軟件來提高畫面組態速度
組態軟件在配套設備中的應用
紫金橋的關系庫同步工具簡介
紫金橋組態軟件與歐姆龍PLC以太網通信(FINS命令)——CPU型號-CJ2M-CPU33
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

亚洲AV无码专区色爱天堂老鸭窝| 精品人妻系列无码专区| 红杏亚洲影院一区二区三区| 精品久久久无码中文字幕天天| 久久精品国产亚洲AV麻豆| 老熟女DHXⅩXXX88老妇女| 男人放进女人里面叫什么 | 极品国产主播粉嫩在线| 久久精品AⅤ无码中文字字幕| 乱码一线二线三线新区破解版| 女性自慰AⅤ片高清免费| 忍着娇喘在公面前被夜袭| 帅气小鲜肉自慰VIDEO| 性国产SE╳O色欲A片免费观看| 亚洲精品AV中文字幕在线| 又湿又紧又大又爽又A视频 | 国产精品毛片无码| 护士HD老师FREE性ⅩⅩⅩ| 久久人人玩人妻潮喷内射人人 | 无码人妻精品一区二区蜜桃视频 | 村长趴在小雪身上耕耘视频| 国产精品成人网站| 激情无码人妻又粗又大| 久久婷婷五月综合色和啪| 欧美巨鞭大战丰满少妇| 日韩精品无码区免费专区| 无码熟妇ΑⅤ人妻又粗又大| 亚洲国产精品无码成人片久久| 一边亲着一面膜下奶韩剧| 亚洲加勒比少妇无码AV| 呦香8黝黝狖呦香8| WWW久久久天天COM| 国产超碰人人做人人爽AV大片| 国内女人喷潮完整视频| 久久久人人人婷婷色东京热 | 无码专区一VA亚洲V天堂| 亚洲精品白浆高清久久久久久| 在线涩涩免费观看国产精品| 啊灬啊灬啊灬快灬高潮了I| 国产AV天堂无码一区二区三区| 国精产品无人区一码二码三蘑菇| 久久天堂AV综合合色蜜桃网| 欧美国产日本高清不卡| 少妇的BBW性大片| 亚洲AV综合色区无码一区| 在线观看国产精品乱码APP| 把腿张开老子CAO烂你| 国产精品VIDEOS麻豆| 精品人妻系列无码专区| 女人无遮挡无内衣内裤网站| 搡老女人ⅩXXX搡老女人电影看 | 91精品人妻欧美一区二区三区| 成人免费无码大片A毛片直播| 国产乱色国产精品免费视频| 久久久国产精品亚洲一区| 欧美性白人极品1819HD| 婷婷久久香蕉五月综合加勒比| 亚洲精品无码MⅤ在线观看| 18禁黄网站禁片免费观看女女| 动漫精品中文无码卡通动漫| 国偷自产一区二区免费视频| 美女MM131爽爽爽| 日韩视频中文字幕精品偷拍| 亚洲AV无码一区二区三区网站 | 日韩精品无码一本二本三本| 亚洲AⅤ国产成人AV片妓女| 亚洲国产精品一区二区美利坚 | 河南妇女毛深深的沟WCD| 免费观看日本XXXXX视频高潮| 日韩一区二区三区人妻系列| 亚洲AV永久无码精品无码流畅| 中文午夜乱理片无码AⅤ| 东北老女人高潮大叫对白| 国产成人一区二区三区在线| 精品少妇无码AV在线播放 | 旧里番美熟妇1一2集| 日产精品99久久久久久| 亚洲A成人无码网站在线| 23部禽女乱小说内| 国产福利一区二区久久| 久久久精品久久久久久96| 人妻无码精品久久亚瑟影视| 亚州少妇无套内射激情视频| 中国老太奶BBW性姣| 丰满少妇被粗大猛烈进人高清| 精品国产乱码久久久久久浪潮| 欧美人与禽Z0ZO牲伦交| 无人区码一码二码三码是什么意思 | 久久久久人妻精品一区三寸| 人妻中出无码一区二区三区 | あざらしそふと官网| 国产无遮挡裸体免费直播| 免费高清播放A级毛片完整版| 熟妇女人妻丰满少妇中文字幕性生活 | 五十熟妇日本熟妇久久| 在线观看AV网站永久免费观看| 荡公乱妇第1章95| 精品无码一区二区三区水蜜桃| 人妻熟妇乱又伦精品HD| 亚洲AV乱码久久精品密桃| 99久久国产综合精品麻豆| 国产精品人成在线播放新网站| 乱人伦中文视频在线| 熟女熟妇丰满自慰AV| 亚洲字幕AV一区二区三区四区| 成人毛片无码一区二区三区| 精品无码国产自产拍在线观看| 热久久99这里有精品综合久久| 亚洲AV无码专区国产乱码不卡 | 日本五月天婷久久网站| 亚洲精品无码激情AV| 差差差30分钟视频轮滑免费| 娇妻在厨房被朋友玩得呻吟| 人妻丰满熟妇AV无码区动漫 | JAPANESE丰满少妇最高潮| 国产在线精品一品二区| 欧美肥胖老太大喷水| 亚洲 欧洲 日产 经典| CHINESE偷拍宾馆TUBE| 国外免费B2B网站| 欧洲亚洲国产成人综合色婷婷 | 久久精品国产自清天天线| 日韩欧洲亚洲SUV| 亚洲午夜无码片在线观看影院| 从大树开始的进化漫画| 久久久久人妻一区二区三区| 试看A级看一毛片二十分钟| 婬乱丰满熟妇XXXXX性69| 国产成人无码VA在线观看| 蜜桃av中文字幕在线| 无遮挡边吃奶边做的视频刺激| 91蜜桃传媒精品久久久一区二区| 国产日韩AV免费无码一区二区 | 亚洲AV成人一区二区三区天堂 | 中文人妻AV大区中文不卡| 国产精品一卡二卡三卡四卡 | 成人H动漫精品一区二区| 久久精品久久久久久久精品 | 国产熟妇一区二区三区AⅤ在线| 欧美人与动人物XXXX9296| 亚洲xxx色色精选| 成 人 黄 色 网站 69| 久久久久久精品一区二区三区日本 | 母与子之间的阴阳调和| 亚洲AV成人精品一区二区三区 | 天天躁日日躁狠狠躁性色AVQ| 中文字幕高清免费日韩视频在线| 国产男男GAY做受ⅩXX高潮| 欧美综合在线激情专区| 亚洲精品无码专区久久久| 抖抈短视频APP下载| 麻花豆传媒剧国产MV在线下载| 小洞饿了要吃大肠动作视频| www.性xxxxx| 久久精品亚洲精品无码| 偷拍区小说区图片区另类呻吟| 999在线视频精品免费播放观看| 黑人巨大进入白人美女视频| 日韩AV一区二区在线| 有人有在线观看的片资源| 国产免费拔擦拔擦8X高清在线人| 欧美性受XXXX喷潮| 亚洲熟妇AV综合网五月| 国产激情一区二区三区成人| 欧美成人精品手机在线| 亚洲国产一二三精品无码| 粉嫩人妻一区二区三区| 免费看漫画在线成人漫画| 亚洲AV无码不卡在线观看下载| 成人无码AⅤ在线播放| 精品免费国产一区二区| 四川少妇BBW搡BBBB槡BB| 400部精品国偷自产在线| 极品粉嫩小泬白浆20P| 深夜A级毛片催情精视频免费| 97精品伊人久久大香线蕉APP| 经典精品毛片免费观看| 丝瓜草莓榴莲向日葵秋葵| 99精品国产再热久久无毒不卡| 精品欧美黑人久久久久| 特级毛片A级毛片免费观看网站| 中日AV乱码一区二区三区乱码| 国产又爽又黄无码无遮挡在线观看| 日韩精品一区二区三区在线观看| 中字年轻漂亮的儿媳2| 狠狠综合久久AV一区二区| 四十如虎的丰满熟妇啪啪| BT天堂新版中文在线地址| 久久久国产精品人妻AⅤ麻豆| 小洞饿了想吃大香肠喝热牛奶是| 成码无人AV片在线电影网站| 免费观看黄A级毛片| 亚洲欧美日韩在线观看一区二区三| 国产精华液一区二区区别大吗 | 亚洲AV中文无码乱人伦APP| 高清播放器欧美大片| 欧美老熟妇乱大交XXXXX| 一本大道香蕉大L在线吗视频| 国产激情久久久久影院老熟女免费| 人妻人人澡人人添人人爽人人玩 |