XMLファイルから読み取ったデータをデータベースに保存する必要があるプロジェクトに取り組んでいます.作成したコードをすでに使用していますが、少し原始的です.XMLTextReaderと他のいくつかの方法を使用してナビゲートしています.ファイルのコード行を介して必要なデータを読み取りますが、プログラムでシリアライゼーションを使用すると、これは非常に「簡単」になると読みましたが、これのいくつかの例を見て、正直に言うとそれらを完全に理解しておらず、聞いたこともないので、誰かがそれを一般的な用語で説明し、それを私のプロジェクトにどのように適用できるかについて少し例を挙げてくれれば、それは素晴らしいことです.
これは私が今持っているものです:
For y As Integer = 0 To 167
Dim reader1 As XmlTextReader = New XmlTextReader(dir)
reader1.ReadStartElement("response")
reader1.ReadToNextSibling("hourly_forecast")
reader1.ReadStartElement("hourly_forecast")
reader1.ReadToNextSibling("forecast")
reader1.ReadStartElement("forecast")
CurrentLine= reader1.LineNumber
If CurrentLine= LastLine Then
reader1.ReadToNextSibling("forecast")
CurrentLine= reader1.LineNumber
End If
While reader1.LineNumber <= LastLine
For w As Integer = 0 To y
reader1.ReadToNextSibling("forecast")
CurrentLine= reader1.LineNumber
Next w
End While
LastLine = CurrentLine
For x As Integer = 1 To 2
Dim reader As XmlTextReader = New XmlTextReader(dir)
reader.ReadStartElement("response")
reader.ReadToNextSibling("hourly_forecast")
reader.ReadStartElement("hourly_forecast")
reader.ReadToNextSibling("forecast")
Do While reader.LineNumber < CurrentLine
reader.ReadToNextSibling("forecast")
Loop
reader.ReadStartElement("forecast")
If x = 1 Then
reader.ReadToNextSibling("FCTTIME")
reader.ReadStartElement("FCTTIME")
reader.ReadToNextSibling("hour")
values(y, x) = reader.ReadString()
d = values(y, x)
reader.ReadToNextSibling("year")
year = lector.ReadString()
reader.ReadToNextSibling("mon_padded")
month = reader.ReadString()
reader.ReadToNextSibling("mday_padded")
day= reader.ReadString()
a = year.Chars(2)
b = year.Chars(3)
c = a + b
x = x - 1
values(y, x) = day + "-" + month + "-" + c
x = x + 1
End If
If x = 2 Then
reader.ReadToNextSibling("temp")
reader.ReadStartElement("temp")
reader.ReadToNextSibling("metric")
values(y, x) = reader.ReadString()
End If
Next x
Next y
これは、私の XML がどのように見えるかの例です。
<response>
<version>0.1</version>
<features>
<feature>hourly10day</feature>
</features>
<hourly_forecast>
<forecast>
<FCTTIME>
<hour>16</hour>
<year>2012</year>
<mon_padded>10</mon_padded>
<mday_padded>05</mday_padded>
</FCTTIME>
<temp>
<english>102</english>
<metric>39</metric>
</temp>
</forecast>
</hourly_forecast>
</response>
さて、これは機能しますが、デシリアライゼーションをどのように適用できますか? ありがとう!