我的XML的一個例子:爲什麼C#XDocument.Descendants()不起作用?
<data>
<Balance>
<LocationName>Locatie 1</LocationName>
<Latitude>39.74</Latitude>
<Longitude>-104.99</Longitude>
<RTI>
<Container>12</Container>
<Pallet>54</Pallet>
</RTI>
</Balance>
// Lots more Balance nodes
</data>
和我的代碼:
XDocument doc = XDocument.Load(HttpContext.Current.Request.PhysicalApplicationPath + "/Content/saldotracking.xml");
var balances = doc.Descendants("Data");
foreach (var b in balances)
{
if (b.Element("LocationName").Value == id)
{
this.LocationName = b.Element("LocationName").Value;
this.Longitude = Convert.ToDouble(b.Element("Longitude").Value);
this.Latitude = Convert.ToDouble(b.Element("Latitude").Value);
this.pallets = Convert.ToInt16(b.Element("RTI").Element("Pallet").Value);
this.containers = Convert.ToInt16(b.Element("RTI").Element("Container").Value);
}
}
根據調試器時,值 「b」 保持整個XML文檔,而不是一個單一的平衡節點。我究竟做錯了什麼?我試圖讀取BalanceName節點的所有後裔,其中LocationName節點的值等於一個String參數。有人可以幫忙嗎?
元素名稱的文檔元素的所有後代您的文檔沒有任何'在它Data'元素。它有一個'data'元素,但這不是一樣的...即使你要求數據,它沒有'LocationName'元素......它有一個'Balance'元素。也許你想'var balances = doc.Descendants(「Balance」)'? – 2014-10-01 13:38:39