/ / знаходження вихідної точки в XmlDocument - c #, xmldocument

Знайти відправну точку в XmlDocument - c #, xmldocument

Так що у мене є цей код.

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

Є два рішення:

  1. Ви можете використовувати XPath, який не залежить від root: //message (відповідатиме будь-якому тегу повідомлень)
  2. Почніть вибирати вузли з кореня документа: document.DocumentElement.SelectSingleNode("/message")

1 для відповіді № 2

Якщо ви не знаєте ім'я кореневого вузла, вам слід отримати його за допомогою DocumentElement власність на document:

XmlElement root = xmlDoc.DocumentElement;