いくつかの入れ子にされたノードを持つこのxmlファイルを解析しようとしています。私はここにきれいに見えるXMLファイルのコンテンツを置く方法を知らない。もしあなたが私にどのように教えることができれば、それも素晴らしいでしょう。xmlreaderとvb.netを使用して入れ子になったノードでxmlファイルを解析する
これは私のコードです。私はいくつかの情報を取得することができますが、それらのうちのいくつかは正しくありません(strGrantにはstrSupportの値があります)。 誰かが自分のコードに何が間違っているか教えてもらえますか?私はここで初心者です。どんな助けもありがとう!
Dim strGrant, strSupport, strDatabank, strWeight, strNumOfGrants, strNumOfSupports, strNumOfDatabanks As String
While XmlReader.Read()
Console.WriteLine("{0}: {1}", XmlReader.NodeType.ToString(), XmlReader.Name)
If XmlReader.Name.ToString() = "GrantInfo/NumberOfGrants" Then strNumOfGrants = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "NumberOfGrants" Then strNumOfGrants = Trim(XmlReader.ReadString())
If (XmlReader.Name.ToString() = "Grant/CLabelInfo") Then strGrant = XmlReader.ReadString()
If XmlReader.Name.ToString() = "Name" Then strGrant = XmlReader.ReadString()
' ''End If
If XmlReader.Name.ToString() = "CleanUpData/DatabankInfo/NumberOfDatabanks" Then strNumOfDatabanks = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "NumberOfDatabanks" Then strNumOfDatabanks = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "Databank/CLabelInfo" Then strDatabank = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "Name" Then strDatabank = XmlReader.ReadString()
If XmlReader.Name.ToString() = "Confidence" Then strWeight = XmlReader.ReadString()
If XmlReader.Name.ToString() = "Name" And XmlReader.NodeType.ToString() = "EndElement" Then
Response.Write("- Number of Grants: " & strNumOfGrants & "<br>")
Response.Write("- Grant Numbers: " & strGrant & "<br>")
End If
If XmlReader.Name.ToString() = "CleanUpData/SupportInfo/NumberOfSupports" Then strNumOfSupports = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "NumberOfSupports" Then strNumOfSupports = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "Support/CLabelInfo" Then strSupport = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "Name" Then strSupport = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "CLabelInfo" And XmlReader.NodeType.ToString() = "EndElement" Then
Response.Write("- Number of Supports: " & strNumOfSupports & "<br>")
Response.Write("- Support Number: " & strSupport & "<br>")
End If
If XmlReader.Name.ToString() = "CleanUpData/DatabankInfo/NumberOfDatabanks" Then strNumOfSupports = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "NumberOfDatabanks" Then strNumOfDatabanks = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "Databank/CLabelInfo" Then strDatabank = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "Name" Then strDatabank = Trim(XmlReader.ReadString())
If XmlReader.Name.ToString() = "CLabelInfo" And XmlReader.NodeType.ToString() = "EndElement" Then
Response.Write("- Number of Databanks: " & strNumOfDatabanks & "<br>")
Response.Write("- Databank Number: " & strDatabank & "<br>")
End If
End While
XmlReader.Close()
これは私の結果である:補助金の
数:1
- グラント番号:DK30111
- 支持体の数:
- サポート番号:
- データバンクの数:
- データバンク番号:
- 助成金番号:1
- 助成金番号:NIHExtra
- 支持体の数:1
- サポート番号:
- データバンクの数:
- データバンク数:
- 補助金の数:1つの
- グラント番号:のRefSeq/NM_007614
- 支持体の数: 1
- サポート番号:
- データバンクの数:
- データバンク数:
- 補助金の数:1つの
- グラント番号:のRefSeq/NM_008084
- 支持体の数:1
- サポート番号:
- データバンクの数:
- データバンク数:
- 補助金の数:1
- グラント番号:[FOUND NOT]
- 支持体の数:1
- サポート番号:
- データバンクの数:
- データバンク数:
あなたは 'XmlReader'を使うことに制限されていますか? XMLへのLINQの使用はずっと簡単です。 –