У меня есть следующий xml
<Objects>
<Object>
<ViewAngle>90</ViewAngle>
<ViewMode>ThirdPerson</ViewMode>
<Top>50</Top>
<Left>100</Left>
</Object>
</Objects>
У меня есть следующий код, чтобы прочитать этот xml
XmlDataDocument doc = new XmlDataDocument();
doc.Load(xmlPath);
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("/Objects/Object");
foreach (XmlNode node in nodes)
{
if (node.InnerXml.Contains("View"))
{
string viewType=node["View"].InnerText;
//..... other stuffs
}
if (node.InnerXml.Contains("ViewAngle"))
{
string viewAngle=node["ViewAngle"].InnerText;
//..... other stuffs
}
if (node.InnerXml.Contains("ViewMode"))
{
string viewMode=node["ViewMode"].InnerText;
//..... other stuffs
}
}
Над кодом работает нормально, если мой xml содержит еще один тег, т.е. <View>3dView</View>
.Но если он не содержит тега View, он выдает ошибку.
InnerXml.Contains()
- это простой строковый метод, который проверяет наличие в строке подстроки или нет.
В моем случае Contains("View")
возвращает true как Просмотр присутствует в ViewAngle и в ViewMode , поэтому он находится внутри блока if View , но при попытке прочитать node["View"]
, выдает ошибку, поскольку Просмотр узел не существует в XML.
Как устранить эту ошибку?