• Jueves 28 de Marzo de 2024, 12:54

Autor Tema:  extraer valor especifico de una cadena  (Leído 1738 veces)

alexisgondola

  • Miembro activo
  • **
  • Mensajes: 37
  • Nacionalidad: pa
    • Ver Perfil
extraer valor especifico de una cadena
« en: Viernes 3 de Agosto de 2012, 17:57 »
0
Buenos dias que tal, estoy intentando obtener el valor de un xml

que viene con la siguiente estructura

<?xml version='1.0' encoding='UTF-8'?>
<errors>
        <error>error x.</error>
</errors>


el xml lo pase a un strin de la siguiente forma

 string obtenerXml;


             { using (WebResponse response = e.Response)
                {
                    HttpWebResponse httpResponse = (HttpWebResponse)response;
                 
                 
                   using (Stream data = response.GetResponseStream())
                   {
                      obtenerXml= new StreamReader(data).ReadToEnd();
                                     
                    }
                }
            }

lo que tengo que obtener es el texto que esta dentro de
<error>error x.</error>

seria obtener : error x.


intente realizar esto, asi puedo estraer el mensaje pero es colocandole un punto fijo de donde termina, pero el problema es que el mensaje puede variar de tamaño:

 string result;

result =   obtenerXml.Substring(54, 100);


como puedo obtener el numero de donde encuentro en la cadena este valor "<"

para poder colocarlo en el substring

o de que otra forma poder capturar los caracteres que estan entre
<error>error x.</error>
todos los dias se aprende algo nuevo

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:extraer valor especifico de una cadena
« Respuesta #1 en: Viernes 3 de Agosto de 2012, 19:59 »
0
Hola alexisgondola.

¿Para que inventar el hilo negro si ya tenemos un namespace llamado System.Xml, que nos permite trabajar y manipular directamente archivos XML?

Te dejo un ejemplo de como hacerlo, suponiendo que tienes un archivo XML llamado Ejemplo.xml que contiene:

Código: [Seleccionar]
<?xml version='1.0' encoding='UTF-8'?>
<errors>
  <error>error x.</error>
  <error>error y.</error>
</errors>

Este programa te dara como salida
error x.
error y.

Código: [Seleccionar]
using System;
using System.Xml;

namespace ConsoleApplication1
{
    public class Program
    {
        public static XmlDocument doc;
        public static XmlTextReader reader;
        public static XmlNodeList listaNodos;

        static void Main(string[] args)
        {
            doc = new XmlDocument();
            reader = new XmlTextReader("Ejemplo.xml");
            doc.Load(reader);
            listaNodos = doc.GetElementsByTagName("error");
            for (int i = 0; i < listaNodos.Count; i++)
            {
                Console.WriteLine(listaNodos[i].InnerXml);
            } 
        }
    }
}

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================