私はC#を初めて使い、XmlElementとそのSelectSingleNodeメソッドを使い始めました。私のXMLファイルには、値(つまり<tag>value</tag>
)を持つか、空白(つまり<tag></tag>
)のタグがあります。空の場合、SelectSingleNodeはnullを返します。C#XmlElement:SelectSingleNodeは空の文字列に対してnullを返しますか?
私は現在、タグの値をキャッチするために、次のコードを使用しています:
XmlElement elem = ....
string s = elem.SelectSingleNode("somepath").Value;
このコードは明らかに空のタグの例外を発生させます。しかし、私にとって空のタグは有効な値で、私は文字列の値が ""と期待しています。
try ... catchを使用してSelectSingleNodeを呼び出すたびにコードが大量になります(空のフィールドが多数あります)。これを実現するにはより良い方法があると確信しています。
推奨されるアプローチは何ですか?
EDIT:
要求に続いて、サンプルXMLコードは次のようになります。
<Elements>
<Element>
<Name>Value</Name>
<Type>Value</Type> <-- may be empty
<Color>Value</Color>
</Element>
<Element>
<Name>Value</Name>
<Type>Value</Type>
<Color>Value</Color>
</Element>
</Elements>
CSコード:
XmlDocument doc = new XmlDocument();
doc.Load("name.xml");
foreach (XmlElement elem in doc.SelectNodes("Elements/Element"))
{
myvalue = elem.SelectSingleNode("Type/text()").Value;
}
さらに完全なコードサンプルを投稿できますか?または、提供されたXMLブロックと直接相関関係があるものはありますか? –
サンプルXMLを投稿できますか? –
はい、もう少しコードサンプルとそれを解析するために使用しているXMLです。私は過去にSelectSingleNodeを使用しており、あなたが言及した動作を見ていません。 – SolutionYogi