项目组这次要发布一个项目,需要实施人员根据现场的机器情况,修改项目配置文件的几个节点,为了减轻实施人员的工作负担,我应用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 文件的更多相关文章

  1. Android修改XML文件

    最近在项目中需要使用XML记录数据,网上这方面的文章较少,记录一下 使用DOM方式 /** * 追加内容到XML文档 * @param instructions * @throws ParserCon ...

  2. Java 操纵XML之修改XML文件

    Java 操纵XML之修改XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...

  3. Java&Xml教程(七)使用JDOM修改XML文件内容

    JDOM提供了非常灵活的方式操作XML文件,使用JDOM非常简单而且代码简洁可读性强.前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容. 在这个教程中,我们准备 ...

  4. Java&Xml教程(三)使用DOM方式修改XML文件内容

    DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素.删除元素.修改元素值.修改元素属性等操作. 我们的XML文件,内容如下: employee.xml <?xml version= ...

  5. 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

    原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...

  6. MyEclipse如何修改XML文件默认行宽

    1.MyEclipse如何修改XML文件默认行宽 Windows--->Preferences--->搜索xml--->XML--->XML Source--->Form ...

  7. MyEclipse如何修改XML文件默认打开的编辑器

    1.MyEclipse如何修改XML文件默认打开的编辑器 Windows--->Preferences--->General--->Editors--->File Associ ...

  8. 深入刨析tomcat 之---第11篇 how tomcat works( 第15章 ) 如何解析web.xml 文件

    writedby 张艳涛 记得当年是学习jsp的时候,写过web.xml中的标签.在之后的springmvc中也是有关于配置mvc 过滤器 和dispatchServlet的标签,之前是看不懂呢!看到 ...

  9. 06_XML的写入_dom4j添加、删除、修改Xml文件内容

    [工程截图] [person.xml]准备一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <st ...

随机推荐

  1. 使用glReadPixels 读取颜色缓存,深度缓存和模板缓存数据

    glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *p ...

  2. nopCommerce从无到有01-初探nopCommerce

    nopCommerce框架的基本结构: 该结构可以参考DDD(领域驱动设计)模式. (注:上图源自他人文章,具体出处不祥,在此引用,感谢原创) nopcommerce官方地址:http://www.n ...

  3. vue2.0 自定义 饼状图 (Echarts)组件

    1.自定义  图表  组件 Echarts.vue <!-- 自定义 echart 组件 --> <template> <div> <!-- echart表格 ...

  4. Golang Map Addressability

    http://wangzhezhe.github.io/blog/2016/01/22/golangmapaddressability-dot-md/ 在golang中关于map可达性的问题(addr ...

  5. SpringMVC:走通一个SpringMVC

    我们现在使用SpringMVC来做一个小的用户管理系统,由于重点在学习SpringMVC,这里我们就不用数据库了. 该小系统实现的功能是:1.登录,不做用户名密码的正确性判断,任何用户名+密码都可以成 ...

  6. 实习日记)select option 选择不同的option时, 页面发生不同的变化

    怎么在下拉框的选择不同的option时, 页面发生响应的变化 因为option是没有点击事件什么的,  只有select才有, 所以不能通过option的点击事件来完成, 所以开始的尝试都失败了(之前 ...

  7. Python生成器定义

    通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素 ...

  8. [概率dp] hdu 5378 Leader in Tree Land

    题意: 给你一颗以1位根节点的树.我们定义对于每一个子树,节点权值最大的权值记为这个子树的权值,为你将1~n放到这个树里 满足最大权值仅仅有k个的组合数是多少. 思路: 我们能够知道以每一个节点为子树 ...

  9. Fedora 25/24/23 nVidia Drivers Install Guide

    https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/ search Most Popular Featured Linux ...

  10. STL源代码剖析——基本算法stl_algobase.h

    前言 在STL中.算法是常常被使用的,算法在整个STL中起到很关键的数据.本节介绍的是一些基本算法,包括equal.fill.fill_n,iter_swap.lexicographical_comp ...