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 ...
随机推荐
- python 使用cx-freeze打包程序
python环境 3.6.5 win7 linux环境同理 先尝试了PyInstaller ,打包时一直提示 no module named gtk 而gtk 又依赖pygobj ...
- poj 2932 Coneology (扫描线)
题意 平面上有N个两两不相交的圆,求全部最外层的,即不被其它圆包括的圆的个数并输出 思路 挑战程序竞赛P259页 代码 /* ************************************* ...
- Codeforces Round #313 (Div. 2) ABC
A http://codeforces.com/contest/560/problem/A 推断给出的数能否组成全部自然数. 水题 int a[1010]; bool b[1000010]; int ...
- What is love ? and how to do?
1.匹配度(matched-degree): 灵性 文化(东西方.南北方) 智力 审美 性 2.对待差异的原则(The principle of difference): 抓大放小 求同存异 心脑并用 ...
- 如何成为一个Linux内核开发者
你想知道如何成为一个Linux内核开发者么?或者你的老板告诉你,“去为这个设备写一个Linux驱动.“这篇文档的目的,就是通过描述你需要 经历的过程和提示你如何和社区一起工作,来教给你为达到这些目的所 ...
- ubuntu将快捷方式复制到桌面
/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制-桌面 就Ok
- 前端自动化工具 gulp
最近一个项目才接触这些自动化工具 webpack gulp grunt 等等.. webpack 可以引入模块 和 压缩 gulp 和 grunt 可以压缩 这里只说下gulp 因为项目里只用到gu ...
- 加载jsp页面报#{} is not allowed in template text
问题是在引进jQueryUI时遇到 解决方法: 在page指令添加: deferredSyntaxAllowedAsLiteral="true" 例如:&l ...
- Android自动折行TextView Group
package com.test.testview; import java.util.ArrayList; import android.content.Context; import androi ...
- fabric-ca安装
1.Go版本1.7+(具体可参考Linux安装Go语言) 2.GOPATH环境变量正确配置 export GOROOT=/usr/local/go export GOPATH=/opt/gopath ...