
这是我正在使用的代码:
function LoadValueFromXML(const Afile@R_404_6889@,APath: string): string;var XMLNode: Variant; XMLdocument: Variant; begin Result := ''; XMLdocument := CreateoleObject('Msxml2.DOMdocument.6.0'); try XMLdocument.async := False; XMLdocument.load(Afile@R_404_6889@); if (XMLdocument.parseError.errorCode <> 0) then MsgBox('The XML file Could not be parsed. ' + XMLdocument.parseError.reason,mbError,MB_OK) else begin XMLdocument.setProperty('SelectionLanguage','XPath'); XMLNode := XMLdocument.selectSingleNode(APath); Result := XMLNode.text; end; except MsgBox('An error occured!',MB_OK); end;end; 这是调用上面的函数从XML加载值的代码
EditMailServerID.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/Mail/MailServer/'); EditMailServerUserID.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/Mail/User@R_404_6889@/'); EditMailServerPassword.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/Mail/Password/'); EditERPBOServicePath.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/default/ERPBOWebServicePath/'); EditERPHOServicePath.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/default/ERPHOWebServicePath/'); EditCustomerID.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/license/customernumber/'); 示例xml代码是:
<?xml version="1.0" enCoding="utf-8"?><settings> <default> <ReadInvoicefile>0</ReadInvoicefile> <HOUser> </HOUser> <HOShopNo>1</HOShopNo> <LagerShop>500</LagerShop> <SenderAddress>administrator@datanova.no</SenderAddress> <HostID>192.168.6.155</HostID> <PincodeDownloadfile@R_404_6889@>tilbud5.txt</PincodeDownloadfile@R_404_6889@> <Printer@R_404_6889@ /> <UseAverageCostPrice>true</UseAverageCostPrice> <ERPBOWebServicePath>http://localhost:90/FlisekompanIEtERPBOWebService/ERPBOService.asmx</ERPBOWebServicePath> <ERPHOWebServicePath>http://localhost:90/FlisekompanIEtERPHOWebService/ERPHOService.asmx</ERPHOWebServicePath> </default> <license> <customernumber>998877</customernumber> <custID>532</custID> </license> <Mail> <MailServer>dnserver.datanova.no</MailServer> <User@R_404_6889@>sharma</User@R_404_6889@> <Password>datanova123</Password> </Mail> <sms> <provIDer>test</provIDer> <sender@R_404_6889@>test</sender@R_404_6889@> <user@R_404_6889@>test</user@R_404_6889@> <password>test</password> </sms> </settings>
我在以下位置收到运行时错误:
XMLdocument.setProperty('SelectionLanguage','XPath'); XMLNode := XMLdocument.selectSingleNode(APath);解决方法 调用函数时,在XPath表达式的末尾有一个额外的/斜杠.只需删除它们即可让它运行起来.这是修复: EditMailServerID.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/Mail/MailServer');EditMailServerUserID.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/Mail/User@R_404_6889@');EditMailServerPassword.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/Mail/Password');EditERPBOServicePath.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/default/ERPBOWebServicePath');EditERPHOServicePath.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/default/ERPHOWebServicePath');EditCustomerID.Text := LoadValueFromXML('C:\dnpr\ERPBO\Settings.xml','//settings/license/customernumber'); 总结 以上是内存溢出为你收集整理的delphi – 在inno脚本中使用Xpath读取xml文件全部内容,希望文章能够帮你解决delphi – 在inno脚本中使用Xpath读取xml文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)