Так що у мене є цей код.
XmlDocument document = new XmlDocument();
document.Load(location);
XmlNodeList msgSigsNodeList;
try
{
XmlNode msgSigsNode = document.SelectSingleNode("/sometimesHere/message");
msgSigsNodeList = msgSigsNode.SelectNodes("whatEver");
}
catch
{
XmlNode msgSigsNode = document.SelectSingleNode("/message");
msgSigsNodeList = msgSigsNode.SelectNodes("whatEver");
}
але я не хочу використовувати винятки, які я хотів би використовувати, якщо заяви або ще краще, чи існує спосіб це зробити без оператора if.
Відповіді:
1 для відповіді № 1Є два рішення:
- Ви можете використовувати XPath, який не залежить від root:
//message
(відповідатиме будь-якому тегу повідомлень) - Почніть вибирати вузли з кореня документа:
document.DocumentElement.SelectSingleNode("/message")
1 для відповіді № 2
Якщо ви не знаєте ім'я кореневого вузла, вам слід отримати його за допомогою DocumentElement
власність на document
:
XmlElement root = xmlDoc.DocumentElement;