我正在模擬將返回XElement的Web服務。該服務從數據庫中創建XElement。爲了擁有本地測試服務,我創建了一個模擬XML元素列表的XML文檔。我希望選擇並通過LINQ將其中的一個返回到XML。如何使用LINQ to XML返回XElement?
所以我有一個XML文檔:
<?xml version="1.0" encoding="utf-8" ?>
<customers>
<customer ordercode="GCT/12345A">
<title>Miss</title>
<initials>A</initials>
<surname>Customer</surname>
...
</customer>
<customer ordercode="GCT/12346A">
<title>Mrs</title>
<initials>AN</initials>
<surname>Other</surname>
...
</customer>
</customers>
而且使用LINQ我想選擇由ordercode屬性客戶元素之一。我只需要基本上刪除客戶節點的InnerXML並返回。我試着解析:
XElement xcust = (XElement)(from c in xdocument.Descendants("customer")
where c.Attribute("ordercode") == strorder
return c).Single();
但它沒有工作。我也試過:
return new XElement("customer", [same LINQ Query]);
我猜我需要以某種方式查詢所選客戶的InnerXML查詢,但我不知道該怎麼做。由於大多數人只是將XML直接解析爲所需的對象(因爲我模擬遠程服務的響應,我不能這麼做),因此我只能返回原始元素,因爲我猜測這是一個一個邊緣案例使用的位。
你是正確的,但它應該是'Attribute'不'Attributes'(去掉 「的」)。另外,可以省略對'XElement'的轉換。 – 2011-03-16 13:46:15
我注意到了,我想我在複製粘貼原始代碼時太快了:) – Botz3000 2011-03-16 13:47:12
完全正確,我最初使用了Attribute。屬性是我的一個錯字。 – 2011-03-16 13:48:36