0

私はxmlファイルを持っています

<config>
   <email Host="201.175.0.0" From="address@gmail.com" Pass="xxx" Name="NameT"/>
   <combo/>
   <list sex="female"/>
</config>

属性の値をvb.netの変数に割り当てるにはどうすればよいですか?

やっていた

Dim doc As XmlDocument = New XmlDocument()
doc.Load("Test.xml")
Dim Host = doc.DocumentElement.Attributes.ItemOf("Host").InnerText
Dim From = doc.DocumentElement.Attributes.ItemOf("From").InnerText
Dim Pass = doc.DocumentElement.Attributes.ItemOf("Pass").InnerText
Dim Name = doc.DocumentElement.Attributes.ItemOf("Name").InnerText

これは正しいですか、より良いアプローチは何でしょうか?

4

1 に答える 1

1

代わりにこれを試してください:

Dim doc As XmlDocument = New XmlDocument()
doc.Load("Test.xml")
Dim root As XmlNode = doc.DocumentElement
Dim nodeEmail As XmlNode = root.SelectSingleNode("/config/email")
Dim Host As String = nodeEmail.Attributes.ItemOf("Host").InnerText
Dim From As String = nodeEmail.Attributes.ItemOf("From").InnerText
Dim Pass As String = nodeEmail.Attributes.ItemOf("Pass").InnerText
Dim Name As String = nodeEmail.Attributes.ItemOf("Name").InnerText

また、一連の変数を使用するのではなく、連想配列 (VB の辞書) を使用してこれらの属性を格納することを検討することもできます。

その場合、次のようになります。

Dim doc As XmlDocument = New XmlDocument()
doc.Load("Test.xml")
Dim root As XmlNode = doc.DocumentElement
Dim nodeEmail As XmlNode = root.SelectSingleNode("/config/email")
Dim dictionary As New Dictionary(Of String, String)
dictionary.Add("Host", nodeEmail.Attributes.ItemOf("Host").InnerText)
dictionary.Add("From", nodeEmail.Attributes.ItemOf("From").InnerText)
dictionary.Add("Pass", nodeEmail.Attributes.ItemOf("Pass").InnerText)
dictionary.Add("name", nodeEmail.Attributes.ItemOf("Name").InnerText)
于 2012-12-05T22:57:54.693 に答える