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-Key: 288789

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

Printed on: April 20, 2024 at 02:04 o'clock

Mitglied: 122990
122990 Nov 19, 2015 updated at 09:56:24 (UTC)
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
Mitglied: 122990
122990 Nov 19, 2015 updated at 10:18:25 (UTC)
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
Member: aletri
aletri Nov 19, 2015 at 11:12:22 (UTC)
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
Member: aletri
aletri Nov 19, 2015 at 15:48:11 (UTC)
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
Mitglied: 122990
122990 Nov 19, 2015 updated at 16:34:26 (UTC)
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.