AutoIt: 如何使用 AutoIt 解析,修改XML 文件
项目组这次要发布一个项目,需要实施人员根据现场的机器情况,修改项目配置文件的几个节点,为了减轻实施人员的工作负担,我应用AutoIt写了一个小界面,实施人员只需在该界面上点几个按钮,就能够完成文件的配置。
完成后的界面如下:

该AutoIt程序的难点就在xml的读取,修改。
我把读取,修改xml的AutoIt代码分享一下:
;调用微软自带的XML解析对象
$objXML = ObjCreate("Microsoft.XMLDOM")
;加载xml文件,$SourceFile就是需要解析的XML文件路径
$file_load = $objXML.load($SourceFile)
;写一个简单的函数,判断xml文件解析是否正确,如果是正确,下面的函数就返回True,否则退出程序(该函数很简单,这里就不贴了)
check_xml_file_format($file_load)
;使用SelectNodes函数,应用xpath定位的方法,可以把xml文件中任意一个节点筛选出来,下面的写法就是简单的xpath写法
$colNodes = $objXML.documentElement.selectNodes("/ControlConfig/Page/Control[@Name='SliderControl']/BizControl[@DllName='SliderControl']")
;If we choose SelectSingleNode method, we won't need iterator.
;其实,使用SelectSingleNode方法,效率比SelectNodes更高,因为可以去掉For循环;
;$colNodes = $objXML.documentElement.selectSingleNode("/ControlConfig/Page/Control[@Name='SliderControl']/BizControl[@DllName='SliderControl']")
For $objNode in $colNodes
ConsoleWrite($objNode.Attributes.getNamedItem("ClassName").Text & @CRLF)
If $server_mode = Then
;下面的方法,是用来修改具体某节点的ClassName的值
; 如果要修改节点的文本值,就要应用方法:$objNode.text = "节点文本值"
$objNode.Attributes.getNamedItem("ClassName").Text = "TouchingMedia.ZhongShi.SliderControl.SliderServerPanelControl"
Else
$objNode.Attributes.getNamedItem("ClassName").Text = "TouchingMedia.ZhongShi.SliderControl.SliderClientPanelControl"
EndIf
Next
$objXML.save($SourceFile)
以前使用Ruby解析xml,有大堆的库可以调用,应用AutoIt来解析xml,今天还是第一次,查阅了不少资料,也算有点收获,想要解决的问题都解决了,以后如果有需要,再来分享更多的信息!
AutoIt: 如何使用 AutoIt 解析,修改XML 文件的更多相关文章
- Android修改XML文件
最近在项目中需要使用XML记录数据,网上这方面的文章较少,记录一下 使用DOM方式 /** * 追加内容到XML文档 * @param instructions * @throws ParserCon ...
- Java 操纵XML之修改XML文件
Java 操纵XML之修改XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...
- Java&Xml教程(七)使用JDOM修改XML文件内容
JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...
- Java&Xml教程(三)使用DOM方式修改XML文件内容
DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...
- MyEclipse如何修改XML文件默认行宽
1.MyEclipse如何修改XML文件默认行宽 Windows--->Preferences--->搜索xml--->XML--->XML Source--->Form ...
- MyEclipse如何修改XML文件默认打开的编辑器
1.MyEclipse如何修改XML文件默认打开的编辑器 Windows--->Preferences--->General--->Editors--->File Associ ...
- 深入刨析tomcat 之---第11篇 how tomcat works( 第15章 ) 如何解析web.xml 文件
writedby 张艳涛 记得当年是学习jsp的时候,写过web.xml中的标签.在之后的springmvc中也是有关于配置mvc 过滤器 和dispatchServlet的标签,之前是看不懂呢!看到 ...
- 06_XML的写入_dom4j添加、删除、修改Xml文件内容
[工程截图] [person.xml]准备一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <st ...
随机推荐
- OpenGL - Tessellation Shader 【转】
http://blog.sina.com.cn/s/blog_8c7d49f20102v4qm.html Patch is just an ordered list of vertices (在tes ...
- caffe版faster-RCNN环境搭建
faster-rcnn提出论文: <Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks& ...
- cas单点登录 deployerConfigContext.xml正确配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Webduino Smart 从入门到起飞
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 试用了一下,感觉这板子+WebduinoBlockly在线开发环境,下限低.上限也低,以后肯定要刷其他固件的.举个简单的例子,WB ...
- CString和string头文件
在使用了MFC库的工程中CString可以直接使用,在没有使用MFC库的工程中加入#include <atlstr.h> 要使用STL里的string,要加入#include <st ...
- vue2.0 + vux (六)NewsList 资讯页 及 NewsDetail 资讯详情页
设置代理,避免出现跨域问题 /*设置代理,避免出现跨域问题*/ proxyTable: { '/api':{ target: 'https://www.oschina.net/action/apiv2 ...
- mac osx 下编译 OpenWrt
默认的文件系统hfs大小写不敏感.新建一个磁盘镜像文件并合式化为hfs+, 然后挂载到系统中. hdiutil create -size 20g -fs "Case-sensitive HF ...
- 【转】git在公司内部的使用实践
版本定义: 版本号使用x.x.x进行定义,第一个x代表大版本只有在项目有重大变更时更新 第二个x代表常规版本有新需求会更新第三个x代表紧急BUG修正一个常见的版本号类似于:0.11.10 分支定义: ...
- 几个经典的TCP通信函数
前言 在TCP通信中要使用到几个非常经典的函数( 点这里参考一个关于它们作用的形象比方 ),本文将对这几个函数进行一个简短的使用说明. socket函数 函数作用:创建一个网际字节流套接字 包含头文件 ...
- EasyDarwin接入ffmpeg实现264转图片快照功能
本文转自:http://blog.csdn.net/cai6811376/article/details/51774467 EasyDarwin一直坚持开源精神,所以我们着手把EasyDarwin中使 ...