Problema con XML y VB6

17/06/2004 - 20:49 por Diego Arnejo | Informe spam
Hola gente del foro, tengo un problema a la hora de grabar un XML, les pido
su ayuda, ya que estoy hace 2 dias trabado con esto y realmente no entiendo
mucho de xml

Este es mi XML
<tv>
<channel id="02">
<display-name>CANAL (A)</display-name>
<display-name>02</display-name>
</channel>
<channel id="03">
<display-name>FILM &amp; ARTS</display-name>
<display-name>03</display-name>
</channel>
<channel id="06">
<display-name>CVN</display-name>
<display-name>06</display-name>
</channel>
<programme start="20040616060000 +0200" stop="20040616073000 +0200"
channel="02">
<title lang="es">Canal 24 horas</title>
<desc lang="es">Informativo.</desc>
<category lang="es">INFORMATIVO</category>
</programme>
</tv>

Me gustaria saber como hacer para grabar un node channel antes del channel
con ID=2 y otro despues del channel con ID=6. Este ultimo iria antes del
node programme. Como lo puedo hacer? Probe miles de forma y no puedo.
Realmente espero su ayuda.
Muchas gracias
 

Leer las respuestas

#1 Jose Marcenaro
23/06/2004 - 14:45 | Informe spam
Seria asi:

Dim doc As New MSXML2.DOMDocument40
doc.Load "..." ' aqui cargar el XML

Dim tv As MSXML2.IXMLDOMElement
Dim channel As MSXML2.IXMLDOMElement
Dim newNode As MSXML2.IXMLDOMElement
Dim attr As MSXML2.IXMLDOMAttribute
Set tv = doc.documentElement

'= Insertar <channel id="01"> antes del primer channel
Set channel = doc.selectSingleNode("tv/channel[@id='02']")
Set newNode = doc.createElement("channel")
Set attr = doc.createAttribute("id")
attr.Value = "01"
newNode.Attributes.setNamedItem attr
tv.insertBefore newNode, channel

'= Insertar <channel id="07"> antes del <programme>
Set channel = doc.selectSingleNode("tv/programme")
Set newNode = doc.createElement("channel")
Set attr = doc.createAttribute("id")
attr.Value = "07"
newNode.Attributes.setNamedItem attr
tv.insertBefore newNode, channel

Adicionalmente, si deseas cargar elementos hijos dentro de newNode debes
usar los mismos comandos:
- crear cada nodo hijo, por ej. Set node = doc.createElement
- agregarle atributos como se muestra en el ejemplo anterior
- agregarle texto mediante:
node.appendChild doc.createTextNode("01")

Saludos
Jose Marcenaro
"Diego Arnejo" escribió en el mensaje
news:%
Hola gente del foro, tengo un problema a la hora de grabar un XML, les


pido
su ayuda, ya que estoy hace 2 dias trabado con esto y realmente no


entiendo
mucho de xml

Este es mi XML
<tv>
<channel id="02">
<display-name>CANAL (A)</display-name>
<display-name>02</display-name>
</channel>
<channel id="03">
<display-name>FILM &amp; ARTS</display-name>
<display-name>03</display-name>
</channel>
<channel id="06">
<display-name>CVN</display-name>
<display-name>06</display-name>
</channel>
<programme start="20040616060000 +0200" stop="20040616073000 +0200"
channel="02">
<title lang="es">Canal 24 horas</title>
<desc lang="es">Informativo.</desc>
<category lang="es">INFORMATIVO</category>
</programme>
</tv>

Me gustaria saber como hacer para grabar un node channel antes del channel
con ID=2 y otro despues del channel con ID=6. Este ultimo iria antes del
node programme. Como lo puedo hacer? Probe miles de forma y no puedo.
Realmente espero su ayuda.
Muchas gracias



Preguntas similares