Foros del Web » Programando para Internet » ASPX (.net) »

Obtener el texto de un nodo de un XML

Estas en el tema de Obtener el texto de un nodo de un XML en el foro de ASPX (.net) en Foros del Web. Hola! Tengo un problema con un XML. Hay un nodo que necesito Leer que viene así: Código: <body> <p>SANTIAGO (Reuters) - El peso chileno cerró ...
  #1 (permalink)  
Antiguo 06/09/2007, 12:23
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
Pregunta Obtener el texto de un nodo de un XML

Hola!

Tengo un problema con un XML.
Hay un nodo que necesito Leer que viene así:

Código:
<body>
  <p>SANTIAGO (Reuters) - El peso chileno cerró el jueves en máximos de más de tres semanas frente al dólar, impulsado por la evolución positiva que muestran los mercados globales y también por una alta posibilidad de nuevas alzas en la tasa rectora de la economía, dijeron operadores.</p> 
  <p>Al final de la jornada, el tipo de cambio spot anotó valores de 521,00 pesos la compra y 521,30 pesos la venta, con un repunte de la moneda chilena de 0,38 por ciento, comparado con los 523,00 y 523,30 pesos del cierre del miércoles.</p> 
  <p>Con estos valores, el peso aumentó a 2,07 por ciento su alza acumulada frente al dólar en lo que va del 2007 y que contrasta con la caída de 3,95 por ciento que registró al término del año anterior.</p> 
  <p>"Hemos tenido una alta oferta de dólares debido a que hay una notoria mejoría en los mercados globales y también porque, a nivel local, las expectativas de más alzas de tasas son mayores, con lo cual la brecha con Estados Unidos se ampliará aún más," dijo un operador.</p> 
  <p>En la actualidad, la tasa referencial de la economía está fijada en 5,5 por ciento nominal anual, mientras que la tasa estadounidense se sitúa en 5,25 por ciento.</p> 
  <p>"Si hay un nuevo aumento de tasas, el país se hace más atractivo para la inversión extranjera, por lo tanto, se generan expectativas de mayores entradas de divisas, que es lo que está incentivando la venta de dólares por parte de los inversores locales," explicó.</p> 
  <p>En la víspera, el Banco Central reafirmó que, en el escenario más probable, será necesario continuar subiendo la tasa de interés en los próximos meses, en un informe de política monetaria dado a conocer en el Congreso.</p> 
  <p>Las transacciones electrónicas en el mercado cambiario local subieron a 1.451 millones de dólares desde los 945 millones negociados en la jornada previa.</p> 
  <p>A estas cantidades hay que agregar alrededor de otro 10 por ciento que se negocia telefónicamente.</p> 
  <p>En el mercado de forward, las operaciones a 7 y 42 días cerraron con valores nominales de 521,30/521,60 y 522,20/522,50 pesos por dólar, respectivamente.</p> 
  <p>Los forward para operaciones reajustables a 90 días y un año alcanzaron al cierre tasas de compra y venta de -3,8/-3,3 y -2,5/-2,0 por ciento, respectivamente.</p> 
  <p>Para ver cotizaciones de dólar spot y forward, hacer doble click en y .</p> 
  </body>
Cuando veo el view source del xml compruebo que si se ven las etiquetas del parrafo.

Pero cuando trato de obtener el texto del nodo <body> desde .NET (C#) de la siguiente forma:

Código:
XmlDocument xmlFeed = new XmlDocument();
                    xmlFeed.Load(archivo);

                    XmlElement xmlNewsComponent = xmlFeed.GetElementsByTagName("NewsML")[0]["NewsItem"]["NewsComponent"]["NewsComponent"]["ContentItem"];
                    foreach (XmlNode nodo in xmlNewsComponent.ChildNodes)
                    {
                        if (nodo.Name == "DataContent")
                        {
                            texto = nodo.ChildNodes[0]["body"].InnerText;
                        }
                    }
al debugguear obtengo que el texto me lo envía así:

Código:
SANTIAGO (Reuters) - El peso chileno cerró el jueves en\r\nmáximos de más de tres semanas frente al dólar, impulsado por\r\nla evolución positiva que muestran los mercados globales y\r\ntambién por una alta posibilidad de nuevas alzas en la tasa\r\nrectora de la economía, dijeron operadores. Al final de la jornada, el tipo de cambio spot anotó\r\nvalores de 521,00 pesos la compra y 521,30 pesos la venta, con\r\nun repunte de la moneda chilena de 0,38 por ciento, comparado\r\ncon los 523,00 y 523,30 pesos del cierre del miércoles. Con estos valores, el peso aumentó a 2,07 por ciento su\r\nalza acumulada frente al dólar en lo que va del 2007 y que\r\ncontrasta con la caída de 3,95 por ciento que registró al\r\ntérmino del año anterior. \"Hemos tenido una alta oferta de dólares debido a que hay\r\nuna notoria mejoría en los mercados globales y también porque,\r\na nivel local, las expectativas de más alzas de tasas son\r\nmayores, con lo cual la brecha con Estados Unidos se ampliará\r\naún más,\" dijo un operador. En la actualidad, la tasa referencial de la economía está\r\nfijada en 5,5 por ciento nominal anual, mientras que la tasa\r\nestadounidense se sitúa en 5,25 por ciento. \"Si hay un nuevo aumento de tasas, el país se hace más\r\natractivo para la inversión extranjera, por lo tanto, se\r\ngeneran expectativas de mayores entradas de divisas, que es lo\r\nque está incentivando la venta de dólares por parte de los\r\ninversores locales,\" explicó. En la víspera, el Banco Central reafirmó que, en el\r\nescenario más probable, será necesario continuar subiendo la\r\ntasa de interés en los próximos meses, en un informe de\r\npolítica monetaria dado a conocer en el Congreso. Las transacciones electrónicas en el mercado cambiario\r\nlocal subieron a 1.451 millones de dólares desde los 945\r\nmillones negociados en la jornada previa. A estas cantidades hay que agregar alrededor de otro 10 por\r\nciento que se negocia telefónicamente. En el mercado de forward, las operaciones a 7 y 42 días\r\ncerraron con valores nominales de 521,30/521,60 y 522,20/522,50\r\npesos por dólar, respectivamente. Los forward para operaciones reajustables a 90 días y un\r\naño alcanzaron al cierre tasas de compra y venta de -3,8/-3,3 y\r\n-2,5/-2,0 por ciento, respectivamente. Para ver cotizaciones de dólar spot y forward, hacer doble\r\nclick en y .\r\n
Es decir, no me pone los "<p>" y los "\r\n" no corresponden a la posicion en donde estan los "<p>"

Yo lo que quisiera es que me devolviera el texto del nodo body así como lo veo en el view source, es decir, con las etiqueras de los parrafos. Hay forma de obtener lo que quiero?

Gracias!
Saludos!
  #2 (permalink)  
Antiguo 06/09/2007, 15:52
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
Re: Obtener el texto de un nodo de un XML

Tendrá algo que ver con el encoding?
El XML me lo envían con esta línea:
<?xml version="1.0" encoding="UTF-8" ?>

Por favor!!.. ayuda!!!
  #3 (permalink)  
Antiguo 06/09/2007, 16:24
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Obtener el texto de un nodo de un XML

En cualquier parser de XML sólo te devolverá el texto, si quieres que te devuelva las etiquetas que incluye cambia InnerText por InnerXml.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 06/09/2007, 16:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
Re: Obtener el texto de un nodo de un XML

Muchas Gracias!!!

Aunque en lugar de <p> me regresa
<p xmlns=\"http://www.w3.org/1999/xhtml\">
pero no importa, solo hago un replace y ya...

Muchisimas gracias!
Saludos!
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 18:33.