3

アプリケーションで xml ドキュメントからいくつかの値を読み取るようにしましたが、現時点ではファイル内の各要素に対して合計 6 個の情報があるため、それらをどのように保存するかはわかりません。

XML の例

<?xml version="1.0" encoding="utf-8"?>
<App>
 <Name>First Application </Name>
 <FileName>1.exe</FileName>
 <FilePath>C:\</FilePath>
 <Third_Parameter>etc</Third_Parameter>
 <Forth_Parameter>etc</Forth_Parameter>
 <Name>Application 2</Name>
 <FilePath></FilePath>
 <Third_Parameter>etc</Third_Parameter>
 <Forth_Parameter>etc</Forth_Parameter>
</App>

とにかくアプリごとに一意のIDを持つ配列を考えていましたが、別の変数の名前で配列を動的に作成する方法がわかりません。私は辞書を使用して見ましたが、2 つ以上の変数があり、それを機能させる方法がわかりません。

基本的に、データベースを使用せずに、潜在的に無限の量のアプリケーションのすべての情報を保存する方法が必要です。

4

2 に答える 2

3

XML構造を次のようにツリーに変更すると便利です。

<?xml version="1.0" encoding="utf-8"?>
<Apps>
  <App Name="First Application">
    <FileName>1.exe</FileName>
    <FilePath>C:\</FilePath>
    <Third_Parameter>etc</Third_Parameter>
    <Forth_Parameter>etc</Forth_Parameter>
  </App>
  <App Name="Application 2">
    <FilePath></FilePath>
    <Third_Parameter>etc</Third_Parameter>
    <Forth_Parameter>etc</Forth_Parameter>
  </App>
</Apps>

次に、このクラスを持つことができます:

Class App
  Public FileName As String
  Public FilePath As String
  Public Third_Parameter As String
  Public Forth_Parameter As String
  Public AppName As String
End Class

そして、(String、App)の辞書-名前でインデックスを作成すると仮定します。

次のように入力できます(xmlタイプの場合XDocument):

Dim dict As New Dictionary(Of String, App)
For Each elem As XElement In xml.Elements()
  Dim app As New App 'each element would be App
  With app
    .AppName = elem.Attribute("Name").Value
    .FileName = elem.Element("FileName").Value
    .FilePath = elem.Element("FilePath").Value
    .Third_Parameter = elem.Element("Third_Parameter").Value
    .Forth_Parameter = elem.Element("Forth_Parameter").Value
  End With
  dict.Add(app.AppName, app)
Next

より少ないコードが必要な場合は、XMLシリアル化を検討することを検討してください。グーグルで見つけたいくつかの例:

于 2013-02-17T13:22:19.577 に答える
1

アプリケーションの実行中にこのデータを保存することだけに関心がありますか?私はデータテーブルを使用します

Dim x As New DataTable
        x.ReadXml("c:\pathtoxml.xml")
        x.AcceptChanges()
于 2013-02-17T13:27:47.557 に答える