XML - anidar nodos en XML

 
Vista:

anidar nodos en XML

Publicado por Veronica (1 intervención) el 23/12/2005 20:42:48
Hola

Estoy programando en Vb.NET y estoy utilizando archivos XML.

Necesito anidar nodos o colecciones, sin embargo el código que tengo para hacer esto solo lo hace para el ultimo nodo a pesar de que a cada nodo de los que hay le intento agregar un nodo hijo.

El archivo XML que tengo es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<Videos>
<Video>
<Title>The Distinguished Gentleman</Title>
<Director>Jonathan Lynn</Director>
<Actors>
<Actor>Eddie Murphy</Actor>
<Actor>Lane Smith</Actor>
<Actor>Sheryl Lee Ralph</Actor>
<Actor>Joe Don Baker</Actor>
</Actors>
<Length>112 Minutes</Length>
<Format>DVD</Format>
<Rating>R</Rating>
</Video>
<Video>
<Title>Her Alibi</Title>
<Director>Bruce Beresford</Director>
<Length>94 Mins</Length>
<Format>DVD</Format>
<Rating>PG-13</Rating>
</Video>
</Videos>

Quiero Insertar dentro de cada nodo Video otro nodo que se llame "Language". El codigo que tengo para hacer esto que menciono es el siguiete:

Try
xmlDoc.Load("C:\videos.xml")
xmlRaiz = xmlDoc.DocumentElement
xmlVideos = xmlRaiz.SelectSingleNode ("/Videos")
xmlIdioma = xmlDoc.CreateElement("Language")

For x = 1 To xmlVideos.ChildNodes.Count
xmlVideo = xmlRaiz.SelectSingleNode
("/Videos/Video[" & x.ToString & "]")
xmlTitle = xmlRaiz.SelectSingleNode("/Videos/Video[" & x.ToString & "]/Title")
xmlVideo.InsertAfter(xmlIdioma, xmlTitle)
Next

xmlDoc.Save("C:\Videos.xml")
Catch ex As Exception
MsgBox(ex.ToString)
End Try

Como pueden ver, se recorre cada nodo Video intentando agregar el nodo "Language", sin embargo cuando veo el resultado, solo el último nodo es el que tiene "Language" y los demás no.

hay algo que me este faltando o es que esto no se puede hacer utilizando estos objetos.

de antemano agradezco su ayuda.

slds.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:anidar nodos en XML

Publicado por zilfos (1 intervención) el 06/11/2008 02:13:09
Eso es porque el vb.net es una porqueria para crear los XML, lo que debes hacer es crear una variable tipo arreglo y cada elemento es un nodo es decir que por cada pasada del cilo tienes que crear una nueva variable nodo para que se inserte y asi poder manejar sus propiedades sino hace lo que mencionas, q solo el ultimo nodo tiene sus propiedades
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar