Soy completamente nuevo a Linq2XML como código para tanto líneas para llevar a cabo las cosas simples, y en un proyecto simple que quería darle una oportunidad ...LINQ to XML - Descendientes devuelve ningún resultado
estoy con esto durante 2 horas y nada de lo que entiendo que es lo correcto :(
estoy realmente, realmente pensando volver a XmlNode de código idéntico
La Tarea:
- que enviar un Acción de SOAP a un servicio de ASMX y me da la respuesta como XML
- que analizar el código XML en un objeto XDocument
- trato de obtener una lista de nodos ... err! ¡Problema!
como se puede ver en esta screenshot
alt text http://www.balexandre.com/temp/2010-02-26_0038.png
mi XDocument tiene un nodo denominado TransactionInformationType bruja es una secuencia, y yo sencilla desea conseguir todos y recuperar el único 2 variables que necesito (puede ver el código comentado) justo debajo de select c;
en el ventana reloj se puede ver que
doc.Descendants("TransactionInformationType")
devuelve nada en absoluto, y viendo por el contenido del texto XDocument en el visualizador, si existe!
¿Alguien me explica y me ayuda a pasar esta ENORME pared?
¡Gracias!
Agregado
respuesta
el XML de respuesta tiene
<gettransactionlistResponse xmlns="https://ssl.ditonlinebetalingssystem.dk/remote/payment">
y debo utilizar esto como espacio de nombres!
resulta que, a recuperar valores, yo necesito utilizar el XNamespace así, por lo que el código final es el siguiente:
// Parse XML
XDocument doc = XDocument.Parse(strResponse);
XNamespace ns = "https://ssl.ditonlinebetalingssystem.dk/remote/payment";
var trans = from item in doc.Descendants(ns + "TransactionInformationType")
select new TransactionInformationType
{
capturedamount = Convert.ToInt32(item.Element(ns + "capturedamount").Value),
orderid = item.Element(ns + "cardtypeid").Value
};
Gracias a todos de ¡la ayuda!
Podría por favor puesto la cabecera del XML hasta el elemento que estan buscando. Puede haber un problema de espacio de nombres aquí. – AxelEckenberger
hecho! agréguela a pasteBin ya que es grande (incluso si solo muestro 2 Transacciones) :) – balexandre
+100 si pudiera ... :) – asifrc