Foros del Web » Programación para mayores de 30 ;) » .NET »

Recorrer un XML en memoria para seleccionar un Nodo

Estas en el tema de Recorrer un XML en memoria para seleccionar un Nodo en el foro de .NET en Foros del Web. Buenos días, Tengo un problema, estoy desarrollando una aplicación web en .Net C# para que me origine una página, la cosa es que para ello ...
  #1 (permalink)  
Antiguo 09/07/2009, 04:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 42
Antigüedad: 15 años
Puntos: 1
Recorrer un XML en memoria para seleccionar un Nodo

Buenos días,

Tengo un problema, estoy desarrollando una aplicación web en .Net C# para que me origine una página, la cosa es que para ello utilizo una transformacion XSLT y como sabreis para ello necesitamos un XML y un XSL.

Bien, el caso es que dicho XML lo genera mi aplicacion mediante una serie de metodos y lo guarda en una variable de tipo MemoryStream por lo que no hay ningun archivo fisico que contenta el XML.

Que clases debo de usar para acceder a ese XML en memoria y recorrerle para hacerme con el valor que tiene un nodo en concreto?

La estructura XML que me interesa es la siguiente:

<root>
<pages>
<page name="/Default.aspx">
<title content="Titulo que llevara al web"></title>
</page>
</pages>
</root>

Con lo que quiero hacerme es con el valor del "content" que esta dentro del Nodo "title".

Alguien sabe que habría que hacer?

Un saludo y gracias.
  #2 (permalink)  
Antiguo 09/07/2009, 20:55
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: Recorrer un XML en memoria para seleccionar un Nodo

Quieres que te lo mueva al subforo .net ? porque este es el de XML y tu pregunta apunta para otro lado...

ahora bien, me imagino que si llamas a una página por URL podrás generar un archivo que lea la variale de memoria y la responda como si fuera un XML...con el content-type: text/xml y su llamada a XSLT ;)

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 10/07/2009, 01:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 42
Antigüedad: 15 años
Puntos: 1
Respuesta: Recorrer un XML en memoria para seleccionar un Nodo (Recorer un XSL - Act)

Vale muevemelo al foro de .Net por favor, a ver si allí pueden ayudarme.

Al final conseguí hacerme con el valor que necesitaba dentro de la estructura XML que tenía en un MemoryStream:

Para ello me cree variables de tipo NodeList:

XmlNodeList registro = doc.GetElementsByTagName("Root");
XmlNodeList listaEntradas = ((XmlElement)registro[0]).GetElementsByTagName("page");



int cuantos = listaEntradas.Count;
XmlNodeList listaGrupo1 = ((XmlElement)listaEntradas[cuantos - 1]).ChildNodes;

this.Page.Title = listaGrupo1.Item(0).Attributes["content"].InnerXml;

Y con esto ya he conseguido cambiar el valor del <title> que tengo en el default.aspx.
Ahora mi problema es otro, al parecer esto que he hecho está bien pero no es lo que buscan, por que lo que estaría perfecto es en vez de acceder a un valor que esta en el XML lo que necesito es acceder al valor que contiene una plantilla XSL.
Por ello, lo que necesito es "algo" que me sirva para acceder al archivo XSL (que este sí es físico) y dentro de él hacerme con el contenido que esta dentro del <xsl:template name="head">
Ahí dentro esta declarado el <title> y el <link> que tiene que llevar la cabecera de mi página web resultante.

Alguien sabe si es posible mediante C# en .Net acceder a dicho contenido?


Se que es largo pero necesito ayuda para resolver este problemilla.

Gracias, un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:03.