次の XML の「CIPCode」要素はオプションです。
<?xml version="1.0" encoding="utf-8"?>
<StateCodesList SchoolYear="2012-2013" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CourseCodesList.xsd">
<Year>2013</Year>
<Course>
<StateCode>990001</StateCode>
<Description>Reading</Description>
<ShortName>Reading</ShortName>
<LongName>Reading</LongName>
<CIPCode>1.01</CIPCode>
<Type>99</Type>
</Course>
<Course>
<StateCode>9902</StateCode>
<Description>Math</Description>
<ShortName>Short</ShortName>
<LongName>Long</LongName>
<Type>70</Type>
</Course>
</StateCodesList>
匿名型に要素を配置する次のコードがあります。
Using aStreamReader As New StreamReader(New MemoryStream(criteria.File)) 'File is the XML in Byte() form
Dim xDoc As System.Xml.Linq.XDocument
xDoc = System.Xml.Linq.XDocument.Load(aStreamReader)
'....do some non-relevant stuff here
Dim courses = From myCourse In xDoc.Descendants("Course")
Select New With
{
.StateCode = myCourse.Element("StateCode").Value, _
.Description = myCourse.Element("Description").Value, _
.ShortName = myCourse.Element("ShortName").Value, _
.LongName = myCourse.Element("LongName").Value, _
.Type = myCourse.Element("Type").Value, _
.CipCode = myCourse.Element("CIPCode").Value _
}
'....do some non-relevant stuff here
End Using
CIPCode が省略されている場合、コードは例外 (オブジェクト参照がオブジェクトのインスタンスに設定されていません) をスローします。該当する場合に CIPCode が保存され、例外がスローされないようにコードを構成する方法はありますか?