[XML/VB] Hoe attribute toevoegen met createnode

Pagina: 1
Acties:

  • 1liter
  • Registratie: Maart 2004
  • Laatst online: 18-05-2021

1liter

appelsap

Topicstarter
Na gezocht te hebben op google en GOT ben ik nog niet bij mijn antwoord.

Wanneer ik met VB de volgende regel uitvoer.

code:
1
2
3
4
5
6
7
8
9
Dim xmlDom      As MSXML2.DOMDocument
Dim xmlHead     As MSXML2.IXMLDOMNode
Set xmlDom = CreateObject("MSXML2.DOMDocument")

Set xmlHead = xmlDom.createNode(7, "xml", "")
Call MsgBox(xmlHead.xml)

Set xmlHead = Nothing
Set xmlDom = Nothing

krijg ik het resultaat:

<?xml version="1.0"?>

Wat ik echter als resultaat wil hebben is:

<?xml version="1.0" encoding="windows-1252"?>

Ik heb geen manier gevonden middels createnode om de encoding tag toe te voegen. Wat doe ik fout?

1liter


  • mindcrash
  • Registratie: April 2002
  • Laatst online: 22-11-2019

mindcrash

Rebellious Monkey

Dit al eens geprobeerd?

Achter deze code:

code:
1
2
3
4
5
6
7
8
9
Dim xmlDom      As MSXML2.DOMDocument
Dim xmlHead     As MSXML2.IXMLDOMNode
Set xmlDom = CreateObject("MSXML2.DOMDocument")

Set xmlHead = xmlDom.createNode(7, "xml", "")
Call MsgBox(xmlHead.xml)

Set xmlHead = Nothing
Set xmlDom = Nothing


Voeg je iets in de trend als het volgende toe:

code:
1
2
3
4
Dim xmlAttrib As MSXML2.IXMLDOMAttribute
Set xmlAttrib = xmlDom.createAttribute("encoding")
xmlAttrib.nodeValue = "windows-1252"
xmlHead.appendChild(xmlAttrib)


MSDN is trouwens een mooie resource als je op het Microsoft platform developed, en kijk dan vooral als je nog meer problemen tegenkomt in het XML deel. Daar kun je dit soort dingen met een beetje moeite gewoon uitvissen namelijk.

[ Voor 34% gewijzigd door mindcrash op 21-04-2004 09:24 ]

"The people who are crazy enough to think they could change the world, are the ones who do." -- Steve Jobs (1955-2011) , Aaron Swartz (1986-2013)


  • 1liter
  • Registratie: Maart 2004
  • Laatst online: 18-05-2021

1liter

appelsap

Topicstarter
Wanneer ik jouw code ertussen plak krijg ik de foutmelding (regel 12):

'This operation can not be performed with a Node of type ATTRIBUTE'

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim xmlDom       As MSXML2.DOMDocument
Dim xmlHead     As MSXML2.IXMLDOMNode
Dim xmlAttrib     As MSXML2.IXMLDOMAttribute

Set xmlDom = CreateObject("MSXML2.DOMDocument")

Set xmlHead = xmlDom.createNode(7, "xml", "")

Set xmlAttrib = xmlDom.createAttribute("encoding")
xmlAttrib.nodeValue = "windows-1252"

Call xmlHead.appendChild(xmlAttrib)
Call MsgBox(xmlHead.xml)

Set xmlHead = Nothing
Set xmlDom = Nothing


En ik had inderdaad ook al bij MSDN gekeken, maar daar ook niets gevonden.

1liter


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

Kan je niet CreateElement gebruiker?

  • 1liter
  • Registratie: Maart 2004
  • Laatst online: 18-05-2021

1liter

appelsap

Topicstarter
Oke, ik heb het deels gevonden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
    Dim xmlDom      As MSXML2.DOMDocument
    Dim xmlProc     As MSXML2.IXMLDOMProcessingInstruction
    
    Set xmlDom = CreateObject("MSXML2.DOMDocument")
    Set xmlProc = xmlDom.createProcessingInstruction("xml", "version=""1.0"" encoding=""windows-1252""")

    xmlDom.appendChild xmlProc
    Call MsgBox(xmlDom.xml)
    Call xmlDom.save("c:\test.xml")
    
    Set xmlProc = Nothing
    Set xmlDom = Nothing


Bovenstaand geeft het gewenste resultaat terug mits ik het wegschrijf naar een xml-bestand (regel 9).
Wanneer ik de xml bekijk zoals in regel 8 dan wordt het niet terug gegeven. En dit is natuurlijk net hoe ik het moet hebben!


Strange???!!!

[ Voor 36% gewijzigd door 1liter op 21-04-2004 14:00 ]

1liter


  • 1liter
  • Registratie: Maart 2004
  • Laatst online: 18-05-2021

1liter

appelsap

Topicstarter
UPDATE:

Ik krijg het nog steeds niet voor elkaar om 'encoding=windows-1252' toe te voegen aan de processing instruction:

Mijn laatste probeersel is:
code:
1
    xmlDom.loadXML("<?xml version=""1.0"" encoding=""windows-1252""?><test></test>")


Het resultaat is dus zonder encoding.

Iemand nog suggesties.

1liter

Pagina: 1