aletri
Goto Top

Per VBS Zeile mit "sonder" Name in XML Datei einfügen

Guten Tag

Dieser Script fügt die Zeilen ein aber es gelingt mir nicht den Namen so darzustellen wie in der Abbildung!! (rot umrahmt)

Ich kann den NAMEN nicht richtig ausmachen!!
Fehlermeldung: Zeile 7
Zeichen 56
Ungültiges Zeichen

Der Script:
<code tye="html">

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.load("C:\AutogenDescriptions.xml")
Set xmlRoot = xmlDoc.documentElement
Set nodeInsert = xmlDoc.selectSingleNode("Autogen.SeasonalModels")
If Not nodeInsert Is Nothing Then
If xmlDoc.SelectSingleNode("
NAME[.=""ModelEntry id="{0719dc48-2a4a-44e5-80a2-c7fb58e53742}" version="2,0"""]") is Nothing Then
Set xmlCLASS = xmlDoc.createElement("ModelEntry id="{0719dc48-2a4a-44e5-80a2-c7fb58e53742}" version="2,0"")
Set xmlKnoten = xmlDoc.createElement("ModelEntry id="{0719dc48-2a4a-44e5-80a2-c7fb58e53742}" version="2,0"")
nodeInsert.appendChild(xmlCLASS)
xmlCLASS.appendChild(xmlKnoten)


Set xmlKnoten = xmlDoc.createElement("FriendlyName")
xmlKnoten.Text = "veg_tb_bush_swamp_set_01"
xmlCLASS.appendChild(xmlKnoten)
Set xmlKnoten = xmlDoc.createElement("MaxScale")
xmlKnoten.Text = "110.000"
xmlCLASS.appendChild(xmlKnoten)
Set xmlKnoten = xmlDoc.createElement("MinScale")
xmlKnoten.Text = "90.000"
xmlCLASS.appendChild(xmlKnoten)
nodeInsert.appendChild(xmlCLASS)

Set xmlKnoten = xmlDoc.createElement("SeasonEntry")
xmlCLASS.appendChild(xmlKnoten)
Set xmlKnoten = xmlDoc.createElement("ModelGuid")
xmlKnoten.Text = "{3BEB5901-246C-44C7-8905-83DFA7612203}"
xmlCLASS.appendChild(xmlKnoten)
Set xmlKnoten = xmlDoc.createElement("Season")
xmlKnoten.Text = "FALL"
xmlCLASS.appendChild(xmlKnoten)
Set xmlKnoten = xmlDoc.createElement("ModelGuid")
xmlKnoten.Text = "{3BEB5901-246C-44C7-8905-83DFA7612203}"
xmlCLASS.appendChild(xmlKnoten)

nodeInsert.appendChild(xmlCLASS)


xmlDoc.Save("C:\AutogenDescriptionsRES.xml")
End if

Set xmlDoc = Nothing
End If


Abbildung:
78a4feec72afef358c7845aa46ab2684

Content-ID: 288789

Url: https://administrator.de/contentid/288789

Ausgedruckt am: 24.11.2024 um 08:11 Uhr

122990
122990 19.11.2015 aktualisiert um 10:56:24 Uhr
Goto Top
Moin,
hier weiß keiner wie deine XML-Datei aussieht ... wie soll man da helfen, Monsieur ?

p.s. dein XPath in Zeile 8 ist falsch da kein Operator (and/or) zwischen den zu verknüpfenden Attributen vorhanden ist.

Ich würde mir an deiner Stelle mal vielleicht mal ein Xpath Tutorial reinziehen:
http://www.w3schools.com/xsl/xpath_operators.asp
http://www.w3schools.com/xsl/xpath_syntax.asp

Gruß grexit
122990
122990 19.11.2015 aktualisiert um 11:18:25 Uhr
Goto Top
Erstens ist dein XPath in Zeile 8 falsch, der sollte so aussehen:
If xmlDoc.SelectSingleNode("//ModelEntry[@id='{0719dc48-2a4a-44e5-80a2-c7fb58e53742}' and @Version='2,0']") is Nothing Then  
dann erstellst du die Knoten in einer Art und Weise die keine Seite im Internet listet, wo hast du das denn her ??? Das macht man so:
Set xmlKnoten = xmlDoc.createElement("ModelEntry")  
xmlKnoten.setAttribute("id", "{0719dc48-2a4a-44e5-80a2-c7fb58e53742}")  
xmlKnoten.setAttribute("Version", "2,0")  
Wie wäre es mal mit Doku lesen anstatt Trial & Error zu betreiben ?! So kommst du sonst nie auf einen grünen Zweig und bist immer auf Hilfe angewiesen.

Viel Erfolg
Gruß grexit
aletri
aletri 19.11.2015 um 12:12:22 Uhr
Goto Top
Hi grexit
Besten Dank erstmal für deine Hilfe.
Hatte schon mal bei w3dschools nachgelesen
aber nicht das richtige gefunden!
Werde es nun Nachholen.
Gruss
aletri
aletri
aletri 19.11.2015 um 16:48:11 Uhr
Goto Top
Hi grexit
was mach ich falsch?

Beim Ausführen des Scripts kommt die Fehlermendung:
Zeile: 9
Zeichen: 83
Fehler: Beim Aufrufen einer Unterroutine (Sub) düfen keine Klammern verwendet werden
Code: 800A0414

Lass ich die Klammern weg wird der Script zwar ausgeführt aber ohne etwas einzufügen, die Datei bleibt unverändert.

Gruss
aletri
122990
122990 19.11.2015 aktualisiert um 17:34:26 Uhr
Goto Top
Dann hast du bestimmt vergessen den ModelEntry Knoten einzubinden ...
Die Vorgehensweise ist immer gleich. Parent-Knoten erstellen, dann die Childknoten mit Ihren Kindern erstellen und im Parent-Knoten hinzufügen. Ganz zum Schluss fügt man dann den Parent-Knoten in die Struktur ein. Das ist die ganze Magie nicht mehr und nicht weniger.

Schnapp dir doch endlich mal ein gutes VBA Buch, dann stehst du nicht immer wegen jeder Kleinigkeit vorm Berg.