次のような XML ドキュメント (Microsoft の Project XML) があります。
<Columns>
<Column>
<Name>A</Name>
<Width>100</Width>
</Column>
</Columns>
<Columns>
<Column>
<Name>B</Name>
<Width>200</Width>
</Column>
</Columns>
<Columns>
<Column>
<Name>C</Name>
</Column>
</Columns>
名前と幅のテキストを取得しようとしています:
var man = new XmlNamespaceManager(xdoc.NameTable);
man.AddNamespace("ns", "http://schemas.microsoft.com/project");
XmlNodeList xnList = xdoc.SelectNodes("/ns:Columns/ns:Column", man);
foreach (XmlNode xn in nodeList[i])
{
string name = xn["Name"].InnerText);
string width = xn["Width"].InnerText);
}
XML にこれらの「Name」ノードと「Width」ノードがあれば問題ありません。ただし、上記のサンプルの最後の例のように、「Width」ノードがない場合もあります。だから私はエラーを取ります。どうすればこれを回避できますか。「空の」文字列として取得したい。どのようにできるのか?