私はこのXMLファイルを持っており、そこからすべてのデータを取得しています。
<?xml version="1.0" encoding="utf-8"?>
<Tabel>
<Member>
<Naam>Cruciatum</Naam>
<Kills>10</Kills>
<Deaths>2</Deaths>
<Score>2222</Score>
</Member>
<Member>
<Naam>test</Naam>
<Kills>123</Kills>
<Deaths>12</Deaths>
<Score>12222</Score>
</Member>
<Member>
<Naam>test2</Naam>
<Kills>159</Kills>
<Deaths>12</Deaths>
<Score>2222</Score>
</Member>
<Member>
<Naam>test3</Naam>
<Kills>159</Kills>
<Deaths>122</Deaths>
<Score>222284</Score>
</Member>
<Member>
<Naam>test4</Naam>
<Kills>15</Kills>
<Deaths>1229</Deaths>
<Score>129453</Score>
</Member>
</Tabel>
すべてを5つの異なるリストボックスに表示しました(「メンバー」の下の子ノードごとに1つ)。
私はそれを行うためにこの次のコードを持っています。
Public Class Rank
Dim memberNodes As XmlNodeList
Dim memberNode As XmlNode
Dim x As Short
Dim dataNodes As XmlNodeList
Dim firstinrow As Boolean
Dim datalist(5) As String
Dim y As Short
Private Sub Rank_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
lstView.Items.Clear()
x = 0
Dim doc As New XmlDocument()
doc.Load("C:\Members.xml")
memberNodes = doc.GetElementsByTagName("Member")
For Each memberNode In memberNodes
dataNodes = memberNode.ChildNodes
y = 1
For Each dataNode As XmlNode In dataNodes
datalist(y) = dataNode.InnerText
datalist(0) = (x + 1).ToString
y += 1
Next
datalist(5) = datalist(4)
datalist(4) = FormatNumber((datalist(2) / datalist(3)), 3)
Dim lvi As New ListViewItem(datalist)
lstView.Items.Add(lvi)
x += 1
Next
End Sub
End Class
そのコードは今のところ正常に機能しており、完全なリストが表示されています。ただし、リストビューの[スコア]列の値で並べ替えられたすべてのデータが必要になるため、次の例では次のようになります。
最初の行に「1test31591221.303222284」と言う必要があります
2行目はスコアなどで2位。
更新: @SteveDogが推奨するように、個別のリストボックスの代わりに1つのリストビューを使用しています。