У меня есть ниже код, в котором каждый item
элемент необходимо содержать ровно один a
, b
, c
или d
элемент, и в дополнение может содержат множество дополнительных элементов. Положение требуемых элементов (, b
...) не является достоверным.XDocument: получить первый дочерний элемент типа «A» или «B»
<root>
<item>
<a>...</a>
...
<item>
<item>
...
<d>...</d>
<item>
<item>
<c>...</c>
<item>
...
</root>
Использование XDocument, как можно выразить следующим образом:
возвращать первый дочерний элемент типа
a
,b
,c
илиd
.
В настоящее время я использую цепочку инструкций if-else, но это богохульство должно идти; кажется, слишком много для такой, казалось бы, простая задача:
foreach (XElement xItem in xmlDoc.Root.Elements("item"))
{
if (xItem.Element("a") != null)
{
// element <a>...</a> found
}
else if (xItem.Element("b") != null)
{
// element <b>...</b> found
}
...
}