<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="Account_Update" class="com.salesforce.dataloader.process.ProcessRunner" singleton="false">
<description>Account Update</description>
<property name="name" value="Account_Update"/>
<property name="configOverrideMap">
<map>
<entry key="dataAccess.name" value="E:\FileShare\XYZ\Account_Update\Input\Account_Update.csv"/>
<entry key="dataAccess.readUTF8" value="true"/>
<entry key="dataAccess.type" value="csvRead"/>
<entry key="dataAccess.writeUTF8" value="true"/>
<entry key="process.enableExtractStatusOutput" value="true"/>
<entry key="process.enableLastRunOutput" value="false"/>
<entry key="process.lastRunOutputDirectory" value="L:\Data_Load_Jobs\XYZ\Account_Load_Job\Log"/>
<entry key="process.mappingFile" value="L:\Data_Load_Jobs\XYZ\Account_Update_Job\config\Account_Upload.sdl"/>
<entry key="process.operation" value="upsert"/>
<entry key="process.statusOutputDirectory" value="E:\FileShare\XYZ\Account_Update\Output"/>
<entry key="sfdc.bulkApiCheckStatusInterval" value="5000"/>
<entry key="sfdc.bulkApiSerialMode" value="5000"/>
<entry key="sfdc.debugMessages" value="false"/>
<entry key="sfdc.enableRetries" value="true"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="sfdc.externalIdField" value="External_ID__c"/>
<entry key="sfdc.extractionRequestSize" value="500"/>
<entry key="sfdc.insertNulls" value="false"/>
<entry key="sfdc.loadBatchSize" value="50"/>
<entry key="sfdc.maxRetries" value="3"/>
<entry key="sfdc.minRetrySleepSecs" value="2"/>
<entry key="sfdc.noCompression" value="false"/>
<entry key="sfdc.timeoutSecs" value="60"/>
<entry key="sfdc.useBulkApi" value="false"/>
</map>
</property>
</bean>
</beans>
从上面的XML,我想基于entry
更新key
节点的值。这是我试图实现的目标,但它不起作用。您能否建议代码中需要更改哪些内容?
Option Explicit
'On Error Resume Next
Dim xmlDoc, nNode, strResult, wshShell, ProgramFiles, objFSO
Set wshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.Load "E:\Avijit\process-conf.xml"
Set nNode = xmlDoc.SelectSingleNode("//benas/bean[@id='DE_OTC_Account_Update']/property[@name='configOverrideMap']/map/entry[@key='dataAccess.name']")
nNode.Attributes.getNamedItem("value").Text = "NewValue"
strResult = xmlDoc.Save("E:\Avijit\process-conf.xml")
Set xmlDoc = Nothing
Set wshShell = Nothing
Set nNode = Nothing
Set objFSO = Nothing
WScript.Quit
答案 0 :(得分:0)
我发现您的代码有三个问题:
benas
更改为beans
。id
属性的值是“Account_Update”,而不是
“DE_OTC_Account_Update”。要更改属性值,请使用节点对象的SetAttribute
属性:
nNode.SetAttribute("value") = "NewValue"
此外,Microsoft.XMLDOM
已弃用,不应再使用。请改用Msxml2.DOMDocument
:
...
Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.Async = False
xmlDoc.Load "E:\Avijit\process-conf.xml"
...