anidar nodos en XML
Publicado por Vero (2 intervenciones) el 23/12/2005 20:11:53
Hola, mi nombre es Veronica.
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.
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


0