gelöst Inhalt einer XML Datei Script ändern

Mitglied: chris27584

chris27584 (Level 1) - Jetzt verbinden

12.09.2017 um 12:51 Uhr, 1968 Aufrufe, 4 Kommentare

Hallo zusammen,

in folgendem Script

.............................................................................................
<?xml version="1.0"?>
-<SkClientConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema;>"
<LastServerIndex>1</LastServerIndex>
<LastUser>11111</LastUser>
<LastWorkplace>2358</LastWorkplace>
-<SerializableFont>
<FontValue>Microsoft Sans Serif; 8,25pt</FontValue>
</SerializableFont>
<LoginMode>Manual</LoginMode>
-<Servers>
<string>192.168.101.111:520;192.168.101.120</string>
<string>192.168.101.115:520;192.168.101.119</string>
</Servers>
<CtiSocketPort>0</CtiSocketPort>
<LOGPath>LOG</LOGPath>
<Language>de</Language>
<LogoutColor>White</LogoutColor>
<MulticastGroup/>
<MulticastPort>0</MulticastPort>
<ReflectorAdr/>
<ReflectorPort>0</ReflectorPort>
<CallDiversionLoginPause>-1</CallDiversionLoginPause>
<CallDiversionWait>0</CallDiversionWait>
<Hint/>
<AllowLoginWithoutWorkplace>true</AllowLoginWithoutWorkplace>
<CloseWait>0</CloseWait>
<CloseText/>
<LocalHttpServerPort>4444</LocalHttpServerPort>
<Title/>
</SkClientConfig>
.............................................................................................

sollen beide <String>-Werte geändert werden.

Eine Anleitung zum Ändern eines Wertes habe ich bereits gefunden,

.............................................................................................
Const ForReading = 1
Const AsASCII = 0


strFixedValue1 = "10.100.82.3:520;10.100.82.5"
strFixedValue2 = "10.100.82.9:520;10.100.82.11"

If WScript.Arguments.Count > 0 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")

strSrcDir = objFSO.GetAbsolutePathName(WScript.Arguments(0))
If WScript.Arguments.Count > 1 Then strFixedValue = WScript.Arguments(1)

If objFSO.FolderExists(strSrcDir) Then
Set objRegExp = New RegExp
objRegExp.Global = False
objRegExp.IgnoreCase = True

For Each objFile In objFSO.GetFolder(strSrcDir).Files
If LCase(objFSO.GetExtensionName(objFile.Name)) = "xml" Then
'Eingabedatei lesen
Set objInFile = objFile.OpenAsTextStream(ForReading, AsASCII)
strContent = objInFile.ReadAll
objInFile.Close


'Den Wert zwischen <servers></servers>
'durch einen fixen Wert ersetzen

objRegExp.Pattern = "(<string>).*(</string>)"
strContent = objRegExp.Replace(strContent, "$1" & strFixedValue1 & "$2")
objRegExp.Pattern = "(<string>).*(</string>)"
strContent = objRegExp.Replace(strContent, "$1" & strFixedValue2 & "$2")

'Ausgabedaei schreiben
Set objOutFile = objFSO.CreateTextFile(objFSO.BuildPath(strSrcDir, objFSO.GetBaseName(objFile.Name) & "_Neu." & objFSO.GetExtensionName(objFile.Name)), True)
objOutFile.Write strContent
objOutFile.Close
End If
Next
End If
End If
.............................................................................................

aber wie kann ich beide gleichzeitig ändern?
Denn mein hier enthaltener bereits gedachter Ansatz klappt nicht.

Hat hier jemand einen schnellen Tip?

Vielen Dank im voraus

Chris27584

Mitglied: MrCount
12.09.2017 um 14:10 Uhr
Servus,

also die einfachste/schnellste Methode wird vermutlich sein, die beiden Zeilen zu löschen und neu einzufügen.
Bitte warten ..
Mitglied: em-pie
12.09.2017 um 14:58 Uhr
Moin,

bei einer Datei gebe ich MrCount recht.
Ansonsten kann vbs anscheinend gut mit XML arbeiten, da MS ein Objekt/ eine Klasse bereitstellt.
Schaue hier mal unter Punkt 4, scheint eine sehr simple Thematik zu sein (habe es selbst noch nicht getestet/ verwenden müssen):
https://technet.microsoft.com/de-de/library/2008.02.heyscriptingguy.aspx ...

Gruß
em-pie
Bitte warten ..
Mitglied: 133883
LÖSUNG 12.09.2017, aktualisiert um 22:15 Uhr
Moin,
wie @em-pie schon schreibt ist die oberste Regel bei XML Dateien diese nur über einen Parser regelkonform zu verändern und nicht mit String-Replace zu arbeiten.
Also nutze die dafür vorgesehenen Objekte:
Gruß @oneplus
Bitte warten ..
Mitglied: chris27584
14.09.2017 um 13:19 Uhr
Moin,

Zuerst mal vielen Dank an alle für die fixen Antworten.

Habe mich für @Oneplus's Lösung entschieden, genau das was ich suchte, auch für kommende Aufgaben ;)


Gruß Chris
Bitte warten ..
Heiß diskutierte Inhalte
TK-Netze & Geräte
Störung Fax2Mail bei NFON am 24.10.20? Kein Mailversand von NFON möglich?
gelöst StefanKittelFrageTK-Netze & Geräte26 Kommentare

Hallo, scheinbar gibt es eine Störung bei NFONs Fax2Mail am heutigen Tag 24.10.20. Man kann Faxe an schicken und ...

Router & Routing
VPN Performance durch Mikrotik erhöhen
JseidiFrageRouter & Routing17 Kommentare

Hallo zusammen, ich habe Stand heute zwei Standort die ich per Site-to-Site VPN über zwei Fritzboxen verbinde. Da hier ...

Voice over IP
Brother-Fax an Speedport Hybrid funktioniert nicht
gelöst kman123FrageVoice over IP16 Kommentare

Hallo liebes Forum, ich bin neu hier und hätte eine kleine Frage, da ich einfach nicht weiter komme. Sorry ...

Windows 10
RFID oder ähnlich Methode zur Sperrung W10pro bei Abwesenheit - Anmeldung nur über PW wieder ermöglichen
UweGriFrageWindows 1013 Kommentare

Hallo Admins, folgende Lösung wird gesucht: W10pro Anmeldung über Bitlocker Freischaltung und PW bei Anmeldung. Gesucht wird: RFID Chip ...

Windows Userverwaltung
Synology mit Azure Active Directory verbinden
roeggiFrageWindows Userverwaltung13 Kommentare

Ich suche eine Lösung mit der ich ein Synology NAS mit der Active Directory verbinden kann um die Benutzer ...

Ubuntu
Ubuntu 20.10 "Groovy Gorilla" mit GNOME 3.38 und Kernel 5.8 veröffentlicht
FrankInformationUbuntu11 Kommentare

Canonical hat Ubuntu 20.10 veröffentlicht. Die neue Version mit dem Codenamen "Groovy Gorilla" bekommt lediglich 9 Monaten Sicherheitsupdates, kritischen ...

Ähnliche Inhalte
Batch & Shell
Script zum XML Datei Umschreiben
cberndtFrageBatch & Shell12 Kommentare

Guten Tag. Ich habe folgendes Problem. Ich habe eine XML Datei mit meinen Gutscheincodes sowie weiter Daten aus meiner ...

Batch & Shell
XML-Inhalt austauschen
gelöst noscriptFrageBatch & Shell10 Kommentare

Hallo zusammen Nachdem ich nun das komplette Internet gefühlt zwei Mal gelesen, aber nicht kapiert habe, versuch ichs nun ...

Batch & Shell
XML-Inhalt austauschen V2
gelöst noscriptFrageBatch & Shell2 Kommentare

hi mit folgendem Script bearbeite ich xml's welche in einem ordner abgelegt sind. nun möchte ich das script so ...

XML

Inhalt einer .xml Datei ändern mit Batch File

JJSchumacherFrageXML10 Kommentare

Hallo Zusammen, Ich habe eine kleine Datei activeSite.xml mit folgendem Inhalt: Diese würde ich gerne mit einem .bat (Batch) ...

XML

XML Datei Fehler?

Patrick-ITFrageXML1 Kommentar

Hallo zusammen ich benutze Sysprep, um ein Image von einer Maschine zu machen und lade dieses dann auf einem ...

VB for Applications

Inhalt einer Excel Datei mit VBS Script ersetze, ändern

gelöst ManriqueFrageVB for Applications10 Kommentare

Hallo an alle, die Aufgabe ist: in einer Excel Datei stehen in der ersten Zeile (Spaltenbeschriftung) die Werte betragnach ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT