2017-02-18 5 views
-1

私はデータベースに挿入するためにvb.netを使用してXML情報をループすることができますか?どのようにVb.net XMLループに

私はいくつかのいくつかのコーデックを試みるが、ループは、これは私がvb.net 2015を使用しています私vb.netコーデックである

<?xml version="1.0" encoding="UTF-8"?> 
<ComputerInformations> 
    <ComputerInformation> 
    <CompName>TESTUSER</CompName> 
    <CompModel>OptiPlex 990</CompModel> 
    <CompDomain>dnsx.local</CompDomain> 
    <CompSystemType>x64-based PC</CompSystemType> 
</ComputerInformation> 
<ComputerMemoryInformations> 
    <ComputerMemoryInformation> 
     <CompMemBank>BANK 1</CompMemBank> 
     <CompMemCapacity>2GB</CompMemCapacity> 
     <CompMemManufacturer>Hynix/Hyundai</CompMemManufacturer> 
     <CompMemPartNumber>HMT125U7BFR8C-G7</CompMemPartNumber> 
     <CompMemSerialNumber>1B73E64A</CompMemSerialNumber> 
     <CompMemSpeed>1067</CompMemSpeed> 
     <CompMemBank>BANK 2</CompMemBank> 
     <CompMemCapacity>2GB</CompMemCapacity> 
     <CompMemManufacturer>Hynix/Hyundai</CompMemManufacturer> 
     <CompMemPartNumber>HMT125U7BFR8C-G7</CompMemPartNumber> 
     <CompMemSerialNumber>1BB3E65E</CompMemSerialNumber> 
     <CompMemSpeed>1067</CompMemSpeed> 
    </ComputerMemoryInformation> 
    </ComputerMemoryInformations> 
</ComputerInformations> 

が動作していない:

Function ParseXmltoDatabase(ByVal XmlData As String) 
     Dim sr As New System.IO.StringReader(XmlData) 
     Dim reader = System.Xml.XmlReader.Create(sr) 
     reader.MoveToContent() 
     Dim inputXml = XDocument.ReadFrom(reader) 
     Dim XmlDoc = XDocument.Parse(inputXml.ToString) 
     Dim Xdoc As XmlDocument = New XmlDocument() 
     Xdoc.LoadXml(XmlDoc.ToString) 
     For Each node As XmlNode In Xdoc.SelectNodes("/ComputerInformations/ComputerMemoryInformations/ComputerMemoryInformation") 
     Dim ComputerMemoryInformation As XmlElement = TryCast(node, XmlElement) 
     Dim CompMemBank As XmlElement = DirectCast(ComputerMemoryInformation.SelectSingleNode("CompMemBank"), XmlElement) 
     If CompMemBank IsNot Nothing Then 
      Console.WriteLine("CompMemBank: {0}", CompMemBank.InnerText) 
     End If 
     Console.WriteLine() 
    Next 

問題は私が手であります最初の結果CompMemBankそれぞれが動作していない

+0

あなたはXMLが不正な形式であるため、それが何であるかを推測できません。それを修正して、もう一度聞いてください。 – MrGadget

+0

正しいXMLが質問に追加されました – Chacaman

答えて

1

あまりにも多くのコード...これらのノードを繰り返すには、これらのノードを繰り返す必要があります。

Sub ParseXmltoDatabase(ByVal XmlData As String) 
    With New XmlDocument() 
     .LoadXml(XmlData) 
     For Each node As XmlNode In .SelectNodes("/ComputerInformations/ComputerMemoryInformations/ComputerMemoryInformation/*") 
      Debug.Print(node.Name & vbTab & node.InnerText) 
     Next 
    End With 
End Sub 

問題の一部は、最後に/*が見つからないXPathでした。

関連する問題