Да, вы игнорируете пространство имен XML при выборе:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
.....
<m:SaveOrder xmlns:m="http://www.test.com/software/schema/" UserGUID="test">
<Order OrderNumber="1234-1234-123" Caller="" OrderStatus="A" xmlns="http://www.test.com/software/schema/">
Тег <Order>
находится внутри тега <m:SaveOrder>
, который использует пространство имен XML с префиксом m:
.
Кроме того, вы пытаетесь выбрать «деталь», а затем переходите непосредственно к узлу «Заказ» (используя .Elements()
) - вы пропустили узел <m:SaveOrder>
между ними.
Это необходимо учитывать при выборе:
XDocument doc = XDocument.Load(HttpContext.Current.Server.MapPath("XMLexample.xml"));
XNamespace xmlns = "http://www.test.com/software/schema/";
var orderNode = doc.Descendants(xmlns + "SaveOrder").Elements(xmlns + "Order");
var value = from o in orderNode.Attributes("OrderNumber")
select o.Value;
Это дает вам результат ??