次のような XML ファイルを読み込んでいます。
<?xml version="1.0" encoding="utf-8"?>
<VehicleList>
<Vehicle>
<Item>
<Name>F-150</Name>
<Maker>Ford</Maker>
<Color>Black</Color>
<Price>30000</Price>
</Item>
<ItemSpecific>
<NameValueList>
<Name>Mileage</Name>
<Value>56000</Value>
</NameValueList>
<NameValueList>
<Name>Year</Name>
<Value>2003</Value>
</NameValueList>
</ItemSpecific>
</Vehicle>
<!-- more Vehicle nodes here -->
</Vehicles>
これは eBay Web サービスから返されたサンプル データであるため、構造について詳しく説明しないでください。
とにかく、次のようなコードを使用して xml を読み取り、すべての車両を List(of Vehicle) オブジェクトに配置します。
Dim vehicles = From v in doc...<Vehicle> _
Let mile = (From x In v.<ItemSpecific>.<NameValueList> Where x.<Name>.Value = "Mileage" Select x.<Value>.Value).Single _
Let year = (From z In v.<ItemSpecific>.<NameValueList> Where z.<Name>.Value = "Year" Select z.<Value>.Value).Single _
Select New Vehicle With {.Name = v.<Item>.<Name>.Value, .Maker = v.<Item>.<Maker>.Value, .Color = v.<Item>.<Color>.Value, .Mileage = mile, .Year = year}
結果は、データがレンダリングされるList(Of Vehicle)
ASP.NET コントロールにバインドされます。必要なノードがすべて存在する場合、ListView
すべてがうまくいきます。たとえば、Mileage ノードは条件付きで、存在しない場合があります。ノードが存在しないときは常に " " エラーが発生します。Sequence contains no elements
物事を適切に機能させるために、知っていることはすべて試しました。XElement が存在するかどうかをテストする方法はありますか?