Extraer parte de nodos y sub nodos de un documento Xml

21/12/2005 - 18:59 por Iruedag | Informe spam
Que tal amigos
Tengo un problemita que me urge resolver.
Tengo un archivo XML , del cual deseo extraer cierto gropo de nodos, con sus
nodos hijos. Pero estoy que me hago bolas entre el Dom y el Xpath.
el archivo es algo asi
<Reply>
<ProjectData>
<a>un dato</a>
<b>otro dato</b>
<c>otro dato</c>
<d>otro dato</d>
<Tasks>
<Task>
<a>1</a>
<b>mas datos</b>
<c>mas datos</c>
</Task>
<Task>
<a>2</a>
<b>mas datos</b>
<c>mas datos</c>
</Task>
</Tasks>
<Assigments>
<Assigement>
<a>mas datos</a>
<b>mas datos</b>
<c>mas datos</c>
</Assigement>
</Assigments>
</ProjectData>
</Reply>

Algo como eso.
Lo que me piden es solo etraer, lo que esta en los <Tasks> , con todo y sus
nodos hijos (su informacion ,etc)
A ver si alguien me despeja la mente
Muchas gracias

Saludos
Ivan
 

Leer las respuestas

#1 Guillermo guille
22/12/2005 - 17:01 | Informe spam
Tendrás que usar el método SelectNodes("Reply/ProjectData/Tasks/Task") y te
dará un objeto del tipo XmlNodeList con los nodos que contenga.
Para examinar los nodos que a su vez estén dentro de esos nodos, puedes usar
nodo.ChildNodes
La propiedad Name te dará el nombre de cada nodo.

Por ejemplo, para el fichero que indicas:

Private Sub mostrarNodos()
Dim configXml As New XmlDocument
' Nodos.xml, será el fichero XML
configXml.Load("Nodos.xml")
' Asignamos los nodos
Dim nodos As XmlNodeList =
configXml.SelectNodes("Reply/ProjectData/Tasks/Task")
If nodos Is Nothing Then
MessageBox.Show("Error, no existe ese nodo")
Exit Sub
End If
Dim sb As New System.Text.StringBuilder
sb.AppendFormat("Total nodos: {0}{1}", nodos.Count, vbCrLf)
' Recorremos los nodos (Task)
For Each n As XmlNode In nodos
sb.AppendFormat("{0}:{1}", n.Name, vbCrLf)
' Recorremos los nodos hijos de Task
For Each n1 As XmlNode In n.ChildNodes
sb.AppendFormat(" {0}={1}{2}", n1.Name, n1.InnerText, vbCrLf)
Next
Next
MessageBox.Show(sb.ToString)
End Sub

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana

Te recuerdo que puedes entrar en mi sitio desde:
http://www.elguille.info/ y http://www.mundoprogramacion.com/
(además de http://www.elguille.org/)

"Iruedag" escribió en el mensaje
news:
Que tal amigos
Tengo un problemita que me urge resolver.
Tengo un archivo XML , del cual deseo extraer cierto gropo de nodos, con
sus
nodos hijos. Pero estoy que me hago bolas entre el Dom y el Xpath.
el archivo es algo asi
<Reply>
<ProjectData>
<a>un dato</a>
<b>otro dato</b>
<c>otro dato</c>
<d>otro dato</d>
<Tasks>
<Task>
<a>1</a>
<b>mas datos</b>
<c>mas datos</c>
</Task>
<Task>
<a>2</a>
<b>mas datos</b>
<c>mas datos</c>
</Task>
</Tasks>
<Assigments>
<Assigement>
<a>mas datos</a>
<b>mas datos</b>
<c>mas datos</c>
</Assigement>
</Assigments>
</ProjectData>
</Reply>

Algo como eso.
Lo que me piden es solo etraer, lo que esta en los <Tasks> , con todo y
sus
nodos hijos (su informacion ,etc)
A ver si alguien me despeja la mente
Muchas gracias

Saludos
Ivan

Preguntas similares