verwendetes Datenbanksystem: LINQ to XML
Hallo,
auf den Rat von Abt hin, mache ich gerade ein Tutorial durch.
Mein Code sieht wie folgt aus:
public List<string> readOrderNumber()
{
List<string> orderNumber = new List<string>();
try
{
XElement root = XElement.Load("C:\\Users\\RadSpeyer\\Documents\\OrdersRequest_201503191145259559.xml");
XElement element = root.Element("ListOrdersResult");
Console.WriteLine(element);
Console.WriteLine("List and Sort all Zip Codes"); // Testausgabe
}
catch (Exception ex)
{
Console.WriteLine("Exception:");
Console.WriteLine("Message: " + ex.Message);
throw ex;
}
return orderNumber;
}
Meine XML-Datei sieht so aus (sind zum Testen noch Beispieldaten):
<?xml version="1.0"?>
<ListOrdersResponse xmlns="https://mws.amazonservices.com/
Orders/2013-09-01">
<ListOrdersResult>
<NextToken>2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=</NextToken>
<LastUpdatedBefore>2013-09-25T18%3A10%3A21.687Z</LastUpdatedBefore>
<Orders>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
</Orders>
</ListOrdersResult>
<ResponseMetadata>
<RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
</ResponseMetadata>
</ListOrdersResponse>
Ich bekomme keine Ausgabe in der Console. Wo ist mein Fehler?
Edit: Das Tutorial: http://openbook.rheinwerk-verlag.de/visual_csharp_2012/1997_14_010.html#dodtp733b0bcb-9828-42dd-81f1-823ad6aa60a3
Benutze ich die XML-Datei aus dem Tut und den Code, funktioniert es. Also muss es wohl an meiner XML-Datei liegen. Nur wo ist da der Fehler?
--
Vielen Dank
LG
Kevin
Der geht nicht in die foreach rein. Ich denke mal, dass er Probleme mit der Datei hat.
Eine Exception wirft er keiner. Es steht einfach nichts da.
--
Vielen Dank
LG
Kevin
Das glaube ich Dir nicht.
Der Code lässt gar nicht zu, dass gar nichts in die Console geschrieben wird, denn selbst eine Exception schreibst Du ja auch in die Konsole.
Eine Schleife hast Du gar nicht, in die rein-gesteppt werden könnte.
Lies Dir nochmal [Artikel] Debugger: Wie verwende ich den von Visual Studio? durch, wie man den Debugger verwendet.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Er schreibt schon was in die Console, nur nicht das, was ich haben will.
Auch Haltepunkte habe ich gesetzt. Da geht er nicht die die Foreach-Schleife hinein, was er allerdings bei der XML aus dem Tut macht.
Der Wert von elements ist nicht null.
--
Vielen Dank
LG
Kevin
Von welcher foreach-schleife sprichst Du denn überhaupt?
Ich kann Dir leider wirklich nicht glauben, dass Du beim Aufruf der XML irgendwo den Debugger nutzt, sonst würdest Du unter Garantie den Fehler sofort finden (können).
Wenn die foreach-schleife, die wir hier nicht sehen, nur readOrderNumber()
aufruft dann wird der return immer leer sein, weil Du nirgends die interne Liste orderNumber
setzt.
Auch das findest Du mit dem Debugger in weniger als 10 Sekunden eigentlich raus.
Es gibt hier auch kein Elements.
Zeig den Code, von dem Du sprichst und verwende gebräuchliche Bezeichnungen.
Sonst ist das hier alles reines rumraten mit der Glaskugel und bringt keinem was. ⚠
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Soory, mein Fehler.
Habe meinen Code erweitert und nicht gepostet.. 8o 🙁
public List<string> readOrderNumber()
{
List<string> orderNumber = new List<string>();
try
{
//XElement root = XElement.Load(@"C:\\Users\\RadSpeyer\\Documents\\OrdersRequest_201503191145259559.xml");
XElement root = XElement.Load(@"C:\\Users\\RadSpeyer\\Documents\\OrdersRequest_" + this.ordersResponseTimeStamp + ".xml");
//IEnumerable<XElement> elements = root.Elements("Person");
IEnumerable<XElement> elements = root.Elements("Order");
foreach (XElement item in elements)
Console.WriteLine(item);
Console.WriteLine("List and Sort all Zip Codes");
}
catch (Exception ex)
{
// Exception properties are important for diagnostics.
Console.WriteLine("Exception:");
Console.WriteLine("Message: " + ex.Message);
throw ex;
}
return orderNumber;
}
}
Bei dem oberen Code ist der Wert von element null
--
Vielen Dank
LG
Kevin
Das Element heißt "Orders" und nicht "Order".
Orders hat dann Elemente vom Typ "Order".
Und schon wären wir bei dem Punkt, dass Dein Code gar nicht funktionieren kann, da Du nicht das machst, was das Tutorial sagt.
IEnumerable<XElement> elements = root.Elements("Order");
Das erste Element nach dem Root ist nicht Order
, sondern ListOrdersResult
.
Den Pfad, den Du abdecken willst, ist wohl ListOrdersResult/Orders/Order
; arbeitest aber mit Order
. Ergo das kann niemals klappen.
Dein Job wäre gewesen: Debugger nehmen, dort in der Live-View das Element root anschauen und dann Baum-artig die Elemente öffnen.
Spätestens dann hättest Du das Problem gesehen.
Bei dem oberen Code ist der Wert von element null
Du hast kein element, nur elemens - das ist ein Unterschied.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Jetzt habe ich
XElement element = root.Element("ListOrdersResult").Element("Orders").Element("Order");
IEnumerable<XElement> elements = element.Descendants();
foreach (XElement item in elements)
Console.WriteLine(item);
und bekomme eine "NullReferenceException".
Ich vermute mal, dass liegt an
XElement element = root.Element("ListOrdersResult").Element("Orders").Element("Order");
Sorry das ich mich grad so blöd anstelle, aber ich stehe gerade auf dem Schlauch und weiß gerade überhaupt nicht, was ich alles aufrufen muss, um den Wert zu bekommen, den ich brauche. Nämlich AmazonOrderId.
Kann mir bitte einer einen kleinen Lösungsansatz mit einem Beispiel geben? Also einfach nur, wie ich in den Pfad komme und Werte auslesen kann. Wobei ich schätze, dass das auslesen einfach mit .Value funktioniert.
--
Vielen Dank
LG
Kevin
ListOrdersResult ist schon dein Root Element deswegen liefert .Element("ListOrdersResult") darauf auch null weil es sich ja nicht nochmal enthält. Was du willst ist:
XElement elements = root.Element("Orders").Elements("Order");
foreach (XElement item in elements)
Console.WriteLine(item);
Nein, das Root Element ist
<ListOrdersResponse xmlns="https://mws.amazonservices.com/
Orders/2013-09-01">
Kevin, wie oft soll ich noch sagen, dass Du Dir im Debugger das root-Element anschauen sollst?
Und was mir gerade auffällt: Du überschreibst den Standard Namespace und das auch noch mit einer ungültigen URL, denn da ist ein Leerzeichen zwischen / und Orders.
Das Problem ist hier, dass es diesen Namespace nicht gibt, da er HTTP 404 zurück wirft(haste die URL bisher mal augerufen, eher nicht, oder?) (und: weißt Du was ein Namespace ist? > A Ten-Minute Guide to XML Namespaces).
Durch das HTTP 404 wird das erste Element nicht ListOrdersResult
heissen, sondern irgendwas mit {[https://mws.amazonservices.com/](https://mws.amazonservices.com/) Orders/2013-09-01}ListOrdersResult
weil der XML Parser das Zeug nicht auflösen kann.
Übrigens hättest Du das durch den Debugger sehen müssen, wie ich es Dir in der Zwischenzeit gefühlte 4000x gesagt hab - denn das fällt sofort auf.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Bitte benutze die richtigen Code-Tags! Fehlermeldung, XML und C# hat verschiedene Tags. Bitte beachte dies!
[Hinweis] Wie poste ich richtig? Punkt 6
Guten Morgen,
das mit dem
https://mws.amazonservices.com/
Orders/2013-09-01
steht so in der Amazon API Beschreibung. Wenn ich den Link in meinem Firefox eingebe, dann bekomme ich eine XML-Datei angezeigt von Amazon. Wenn ich den Link aber in meiner IDE anzeige, bekomme ich auch ein HTTP 400. Habe aber dennoch das Leerzeichen mal rausgemacht.
Hier ist der Debugger Eintrag von Root:
+ root <ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
<ListOrdersResult>
<NextToken>2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=</NextToken>
<LastUpdatedBefore>2013-09-25T18%3A10%3A21.687Z</LastUpdatedBefore>
<Orders>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
</Orders>
</ListOrdersResult>
<ResponseMetadata>
<RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
</ResponseMetadata>
</ListOrdersResponse>
System.Xml.Linq.XElement
Das hier ist FirstNode:
<ListOrdersResult xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
<NextToken>2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=</NextToken>
<LastUpdatedBefore>2013-09-25T18%3A10%3A21.687Z</LastUpdatedBefore>
<Orders>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
<Order>
<AmazonOrderId>902-3159896-1390916</AmazonOrderId>
<ShipmentServiceLevelCategory>Standard
</ShipmentServiceLevelCategory>
<ShipServiceLevel>Std JP Kanto8</ShipServiceLevel>
<EarliestShipDate>2013-08-20T19:51:16Z</EarliestShipDate>
<LatestShipDate>2013-08-25T19:49:35Z</LatestShipDate>
<MarketplaceId>A1VC38T7YXB528</MarketplaceId>
<SalesChannel>Amazon.com</SalesChannel>
<OrderType>Preorder</OrderType>
<BuyerEmail>5vlhEXAMPLEh9h5@marketplace.amazon.com</BuyerEmail>
<FulfillmentChannel>MFN</FulfillmentChannel>
<OrderStatus>Pending</OrderStatus>
<BuyerName>John Jones</BuyerName>
<LastUpdateDate>2013-08-20T19:49:35Z</LastUpdateDate>
<PurchaseDate>2013-08-20T19:49:35Z</PurchaseDate>
<NumberOfItemsShipped>0</NumberOfItemsShipped>
<NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
<PaymentMethod>Other</PaymentMethod>
<IsBusinessOrder>true</IsBusinessOrder>
<PurchaseOrderNumber>PO12345678</PurchaseOrderNumber>
</Order>
</Orders>
</ListOrdersResult>
Soweit sogut. Also ist der Name des erstes Element wohl
<ListOrdersResult xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
.
XElement element = root.Element("ListOrdersResult xmlns=\"https://mws.amazonservices.com/Orders/2013-09-01\"");
Hier bekomme ich eine XmlException mit folgender Nachricht: > Fehlermeldung:
Das ' '-Zeichen, hexidezimaler Wert 0x20, darf nicht in einem Namen enthalten sein.
Ist das ''-Zeichen dann der HTTP 400 Fehler? Wieso zeigt der Browser von der IDE HTTP 400 an, während Firefox es auflösen kann?
Also liegt der Fehler wohl am Namespace, den er nicht auflösen kann?
Edit:
Wenn ich das so mache
XElement element = root.Element("ListOrdersResult");
bekomme ich eine NullRefererenceException.
Edit2:
Wenn ich den Namespace entferne, dann geht es und ich bekomme meine Werte.
Edit3:
Habe jetzt beim Schreiben schon den Namespace entfernt. Das es nicht die beste Lösung ist weiß ich. Nur komme ich alleine, leider noch nicht, auf eine Lösung, wie ich das hinbekomme mit dem Namespace.
--
Vielen Dank
LG
Kevin