2014-02-20 4 views
0

У меня есть функция, которая возвращает мне различные атрибуты элемента.
В этом случае мне нужно принять все атрибуты из данного элемента
мне удается прочитать правильный элемент и использовать следующий код:Получить все атрибуты из элемента xml

If XMLReader.HasAttributes Then 
For Each Attribute As XmlAttribute In XmlNodeType.Attribute 
    retVal = Attribute.Name + "+" + Attribute.Value 
Next 
End If 

Что очевидно не является правильным, потому что он бросает меня перед тем, как я начну использовать его
Expression is of type 'System.Xml.XmlNodeType', which is not a collection type
Есть ли кто-нибудь, кто мне показал правильный путь?

ответ

2

Как насчет XMLDocument у него есть свойство Attributes, которое представляет собой коллекцию.

Dim xmldoc As New XmlDocument 
xmldoc.Load("path to file") 
Dim concatValue As String = "" 
For Each atr As XmlAttribute In xmldoc.DocumentElement.Attributes 
    concatValue &= atr.Name & "+" & atr.Value 
Next 
+0

В принципе Вы правы ... с дополнительным параметром ... 'Для каждого атрибута Как XmlAttribute В ElementControl.DocumentElement.ChildNodes (5) .ChildNodes (2) .ChildNodes (Атрибуты (1) - 1) .Attributes retVal = Attribute.Name + "+" + Attribute.Value Next' Attibute (1) - это число узлов, поступающих из кода, и это потому, что здесь находится 500 дочерних узлов. Другие дочерние узлы - это предыдущие узлы, пока мы не придем к тому, что нам интересно ... Спасибо, что ваш ответ был очень хорошим, и укажите его на мою ошибку, я имею ... Еще раз спасибо –

+0

Ваш прием. .. – OneFineDay

Смежные вопросы