Я по-прежнему считаю, что работать с xml следует средствами, для того предназначенными.
Цитата Armsinglom:
новые параметры нужно добавлять между строк <add key="UseDiff" value="false" /> и </appSettings>, а так же учесть что если данные параметры есть то их трогать не нужно. »
|
Я всё-таки полагаю, что «трогать» их нужно. Например, для того, чтобы задать указанные значения. Например:
Скрытый текст
Код:

Option Explicit
Dim objDictionary
Dim strSourceFile
Dim objFSO
Dim strKey
Dim objXMLDOMElement
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
With objDictionary
.Add "SkipPreSelect", "false"
.Add "RefundLockTime", "20"
.Add "UseSverkaDiff", "false"
End With
strSourceFile = "cfg.Config"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strSourceFile) Then
With WScript.CreateObject("Microsoft.XMLDOM")
.preserveWhiteSpace = True
.load strSourceFile
For Each strKey In objDictionary.Keys
Set objXMLDOMElement = .selectSingleNode("/configuration/appSettings/add[@key='" & strKey & "']")
If objXMLDOMElement Is Nothing Then
Set objXMLDOMElement = .createElement("add")
objXMLDOMElement.setAttribute "key", strKey
objXMLDOMElement.setAttribute "value", objDictionary.Item(strKey)
.selectSingleNode("/configuration/appSettings").appendChild objXMLDOMElement
Else
objXMLDOMElement.setAttribute "key", strKey
objXMLDOMElement.setAttribute "value", objDictionary.Item(strKey)
End If
Set objXMLDOMElement = Nothing
Next
objFSO.CopyFile strSourceFile, strSourceFile & ".bak", True
.save strSourceFile
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
Если параметров нет — они будут добавлены, если есть — у них будут заданы указанные значения. Оригинальный файл будет сохранён с расширением .bak.
Цитата Armsinglom:
а можно этот скрипт заставить что бы он удалял все строки между
<add key="UseSverkaDiff" value="false" />
и
</appSettings>
и прописывал то что я укажу, т .е. не важно какие между этими строками были параметры и строки, он их затрёт и впишет нужные мне. »
|
Какой в этом смысл? А если там окажутся нужные узлы? В xml ведь, хоть порядок расположения и присутствует, но, фактически, не используется на практике. Тогда уж стоит удалять
всё содержимое узла appSettings и задавать своё.