2010-02-22 2 views
1

Я хочу, чтобы иметь возможность читать мой XML-документ, но я немного потерял, как это сделать. Я не могу разместить свой XML здесь, потому что он просто пытается использовать разметку. В любом случае, у меня есть корневой узел, который окружает весь объект, который я хочу прочитать. Оттуда есть несколько элементов. 2 из этих элементов могут иметь несколько экземпляров. Будет только один объект, который мне нужно прочитать из документа XML.Чтение XML из документа с помощью VB.net

Заранее спасибо. Я надеюсь, что смогу объяснить достаточно, не имея возможности опубликовать мой XML

:::

Вот код я до сих пор:

Private Function ExtractXMLFromFileToBonder(ByVal path As String) As Bonder 
    Dim extractedBonder As New Bonder 
    Dim settings As New XmlReaderSettings 
    settings.IgnoreWhitespace = True 

    settings.CloseInput = True 

    Using reader As XmlReader = XmlReader.Create(path, settings) 

     With reader 

      .ReadStartElement("Machine_Name") 
      MsgBox(.GetAttribute("Name")) 

     End With 

    End Using 

    Return Nothing 

End Function 
+1

Почему это было приостановлено? Это разумный вопрос, который может потребовать дальнейшей квалификации, но он не является полностью двусмысленным. –

+0

Спасибо, я тоже не знал почему. –

+0

Я начинаю читать где-то, но мой первый элемент выглядит следующим образом: <Имя_команды = «некоторое имя»> Я изо всех сил пытаюсь прочитать этот атрибут. Я могу продвинуться и получить следующий элемент без проблем. –

ответ

1

Используйте читателя XML из System.xml для достижения этой цели. Вы можете использовать xmlreader по вашему выбору. См. Пространство имен XML по адресу http://msdn.microsoft.com/en-us/library/system.xml%28VS.71%29.aspx

+0

Я стараюсь, что прямо сейчас на самом деле, но ударился о стену. Не знаете, как это прочитать. –

+0

См. Мой следующий ответ. Не удалось поместить код в этот комментарий ... – Kangkan

1

Сделайте что-нибудь наподобие

Dim m_xmld As XmlDocument 
Dim m_nodelist As XmlNodeList 
Dim m_node As XmlNode 

'Create the XML Document 
m_xmld = New XmlDocument() 

'Load the Xml file 
m_xmld.Load("YourPath\test.xml") 

'Show all data in your xml 
MessageBox.Show(m_xmld.OuterXml) 


'Get the list of name nodes 
m_nodelist = m_xmld.SelectNodes("/family/name") 

'Loop through the nodes 
For Each m_node In m_nodelist 
'Get the Gender Attribute Value 
Dim genderAttribute = m_node.Attributes.GetNamedItem("gender").Value 

'Get the firstName Element Value 
Dim firstNameValue = m_node.ChildNodes.Item(0).InnerText 

'Get the lastName Element Value 
Dim lastNameValue = m_node.ChildNodes.Item(1).InnerText 

'Write Result to the Console 
Console.Write("Gender: " & genderAttribute _ 
& " FirstName: " & firstNameValue & " LastName: " _ 
& lastNameValue) 
Console.Write(vbCrLf) 
Next 
+0

Невозможно сделать это с помощью XMLReader? –

+0

Существует несколько способов. Вы также можете использовать xpath. – Kangkan

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