Sono un completamente nuovo per Linq2XML come codice per molto linee per eseguire le cose semplici, e in un semplice progetto ho voluto fare un tentativo ...Comprendere LINQ to XML - Discendenti non dà risultati
sono con questo per 2 ore e nulla che io capisco che è bene :(
sono davvero, davvero pensando di tornare a XmlNode-codice-alike
La Task:
- mando un azione SOAP per un servizio ASMX e ottengo la risposta come XML
- ho analizzare il codice XML in un oggetto XDocument
- cerco di ottenere un elenco di nodi ... err! Problema!
come si può vedere da questo screenshot
alt text http://www.balexandre.com/temp/2010-02-26_0038.png
mia XDocument ha un nodo chiamato TransactionInformationType strega è una sequenza, ed io semplice voglia di ottenere tutto e recuperare gli unici 2 variabili di cui ho bisogno (puoi vedere il codice commentato) appena sotto selezionare c;
nella finestra Guarda si può vedere che
doc.Descendants("TransactionInformationType")
restituisce nulla a tutti, e vedendo dal contenuto del XDocument nel testo Visualizer, esiste!
cura Chiunque per spiegare e mi aiuta a passare questo enorme muro?
Grazie!
Aggiunto
risposta
l'XML Response ha
<gettransactionlistResponse xmlns="https://ssl.ditonlinebetalingssystem.dk/remote/payment">
e devo usare questo come spazio dei nomi!
scopre che, a recuperare i valori, ho bisogno di utilizzare la XNamespace pure, in modo che il codice finale è simile al seguente:
// 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
};
Grazie a tutti per l'aiuto!
La prego di inviare l'intestazione del XML fino all'elemento voi stanno cercando. Potrebbe esserci un problema di namespace qui. – AxelEckenberger
fatto! aggiungerlo al pastebin come è grande (anche se mi mostra solo 2 Transazioni) :) – balexandre
100 se potessi .. :) – asifrc