问题描述
在XMLfileChange中,导入了XML文件,设置某个节点中的属性值为port=[PropertyTomcatPort],PropertyTomcatPort的初始值是1234,在程序中新建了对话框使用MsiSetProperty(ISMSI_HANDLE,"PropertyTomcatPort","5678"),确实是将PropertyTomcatPort的值设置为5678了,但是安装后的XML文件中的,port属性依然是1234,求大神解答,万分感谢........我用的版本的是installshield2010
解决方案
解决方案二:
我也遇到了,怎么解决的
解决方案三:
XMLfileChange没有使用过,感觉上不是很灵活。我这有个其他办法,我封装成了函数,你可以试试:prototypeINTSetAttributeValue(string,string,string,string);//xmlFilexml文件名//id用于获取唯一节点的属性或某个节点//key节点要修改属性名//value新的属性值functionINTSetAttributeValue(xmlFile,id,key,value)OBJECToDoc,objRoot,oNodeList;NUMBERnResult;beginnResult=1;setoDoc=CreateObject("Microsoft.XMLDOM");if(IsObject(oDoc)=FALSE)thenMessageBox("MSXMLDOM-Document对象创建失败!",0);returnnResult;endif;oDoc.async=FALSE;if(Is(FILE_EXISTS,xmlFile))thenoDoc.load(xmlFile);setobjRoot=oDoc.documentElement;setoNodeList=objRoot.selectNodes(id);if(oNodeList.length>0)thenoNodeList.item(0).SetAttribute(key,value);endif;oDoc.save(xmlFile);nResult=0;endif;returnnResult;end;调用://直接节点名strxmlid="/beans/bean/property/props/prop";//根据节点属性值获取节点(可能存在相同节点名时,使用此方法)strxmlid="/beans/bean/property/props/prop[@name="hibernate.dialect"]";nResult=SetAttributeValue(xmlFile,strxmlid,"value","HELLO");