Если вы загружаете XML в XmlDocument
, существует множество способов получить значение атрибута. Вы можете использовать XPath, чтобы найти атрибут:
XmlAttribute a = doc.SelectSingleNode("/reply/@success");
Console.Write(a.Value);
Если у вас уже есть XmlElement
, к которому относится атрибут (который в данном случае является элементом документа), тогда вы можете просто использовать GetAttribute
:
Console.Write(doc.DocumentElement.GetAttribute("success"));
Существуют аналогичные подходы, если вы используете XPathDocument
или XmlReader
или XDocument
.
Однако во всех случаях вы хотите получить атрибут по его имени , а не по его позиции. В вашем тестовом примере есть только один атрибут; в любом реальном приложении вероятно наличие нескольких атрибутов, а порядок следования атрибутов в XML не имеет значения. Эти два элемента семантически эквивалентны:
<a foo='true' bar='false'/>
<a bar='false' foo='true'/>
Вы даже не знаете, что синтаксический анализатор XML будет представлять вам атрибуты в том же порядке, в котором они появляются в документе; в зависимости от реализации, парсер может выдавать их вам в алфавитном порядке или в случайном порядке. (Я видел оба.)