none
Mehrere Nodes in einer Datei für XMLSerialization RRS feed

  • Frage

  • Ich möchte ein Programm erstellen, welches für mich Preise von Webseiten liest und in eine XML-Datei schreibt. Die URLs und alle anderen Daten für die XML-Datei stehen in einer weiteren XML-Datei. Zum Lesen der Datei habe ich nun einen XMLSerializer implementiert. Allerdings befinden sich in meiner URL-XML-Datei mehrere "Artikel".

    Ist das Auslesen mehrerer Artikel aus einer datei möglich?

    Code:

    Public Class Form2
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            XMLSerial.Main()
        End Sub
    End Class

    Imports System.Xml.Serialization
    Imports System.IO
    
    <XmlRootAttribute("Artikel", Namespace:="http://www.benedata.netau.net", IsNullable:=False)>
    Public Class Artikel
        Public Name As String
        Public URL As String
        Public ToolTip As String
        Public TotalCost As String
        Public Amazon As Boolean
        Public Type As String
    End Class
    
    
    Public Class XMLSerial
        Public Shared Sub Main()
            Dim x As New XMLSerial()
            x.Read("art.xml")
        End Sub
    
        Protected Sub Read(filename As String)
            Dim serializer As New XmlSerializer(GetType(Artikel))
            AddHandler serializer.UnknownNode, AddressOf serializer_UnknownNode
            AddHandler serializer.UnknownAttribute, AddressOf serializer_UnknownAttribute
    
            Dim fs As New FileStream(filename, FileMode.Open)
            Dim art As Artikel
            art = CType(serializer.Deserialize(fs), Artikel)
    
            Console.WriteLine((art.Name))
            Console.WriteLine(art.URL)
            Console.WriteLine(art.ToolTip)
            Console.WriteLine(art.TotalCost)
            Console.WriteLine(art.Amazon)
        End Sub
    
        Private Sub serializer_UnknownNode(sender As Object, e As XmlNodeEventArgs)
        End Sub
    
        Private Sub serializer_UnknownAttribute(sender As Object, e As XmlAttributeEventArgs)
        End Sub
    End Class
    

    XML:

    <Artikelliste>
    <Artikel Typ="CPU">
    <Name>Intel Core i5-4590</Name>
    <URL>
    http://www.notebooksbilliger.de/intel+core+i5+4590+4x+330ghz+boxed
    </URL>
    <ToolTip>3,3GHz, Quad-Core, 6MB Cache</ToolTip>
    </Artikel>
    <Artikel Typ="CPU">
    <Name>Intel Core i5-4670</Name>
    <URL>
    http://www.notebooksbilliger.de/intel+core+i5+4670+4x+340ghz+boxed
    </URL>
    <ToolTip>3,4 GHz, Quad-Core, 6MB Cache</ToolTip>
    </Artikel>
    <Artikel Typ="CPU">
    <Name>Intel Core i3-4160</Name>
    <URL>
    http://www.notebooksbilliger.de/intel+core+i3+4160+2x+360ghz+boxed
    </URL>
    <ToolTip>3,6GHz, Dual-Core, 3MB Cache</ToolTip>
    </Artikel>
    <Artikel Typ="Case">
    <Name>Antec P280</Name>
    <URL>
    http://www.notebooksbilliger.de/antec+p280+gehaeuse+schwarz/eqsqid/95698e9a-1834-4f10-b000-5ef62e6a871e
    </URL>
    <ToolTip>USB 3.0, schallgedämmt</ToolTip>
    <img>
    http://www.notebooksbilliger.de/images/products/220000/226341/middleP280_black_1.jpg
    </img>
    </Artikel>
    <Artikel Typ="Case">
    <Name>Antec Three Hundred Two</Name>
    <URL>
    http://www.notebooksbilliger.de/antec+three+hundred+two+gehaeuse+schwarz
    </URL>
    <ToolTip>USB3.0</ToolTip>
    <img>
    http://www.notebooksbilliger.de/images/products/220000/226722/middleThree_Hundred_Two_1.jpg
    </img>
    </Artikel>
    <Artikel Typ="Case">
    <Name>Antec NSK4100</Name>
    <URL>
    http://www.notebooksbilliger.de/antec+new+solution+nsk4100+gehaeuse+schwarz
    </URL>
    <ToolTip>USB 3.0</ToolTip>
    <img>
    http://www.notebooksbilliger.de/images/products/220000/227736/middleNSK4100_1.jpg
    </img>
    </Artikel>
    <Artikel Typ="Disk">
    <Name>Seagate SSHD 1TB</Name>
    <URL>
    http://www.notebooksbilliger.de/seagate+desktop+sshd+1tb+35+sata+6gbs
    </URL>
    <ToolTip>SATA 6Gb/s, 8GB SSD</ToolTip>
    </Artikel>
    <Artikel Typ="Disk">
    <Name>Seagate SSHD 2TB</Name>
    <URL>
    http://www.notebooksbilliger.de/seagate+desktop+sshd+2tb+35+sata+6gbs
    </URL>
    <ToolTip>SATA 6Gb/s, 8GB SSD</ToolTip>
    </Artikel>
    <Artikel Typ="Disk">
    <Name>Samsung SSD 250GB</Name>
    <URL>
    http://www.notebooksbilliger.de/samsung+850+evo+series+ssd+250gb
    </URL>
    <ToolTip>AES verschlüsselt</ToolTip>
    </Artikel>
    <Artikel Typ="Drive">
    <Name>ASUS DRW-24F1ST</Name>
    <URL>
    http://www.notebooksbilliger.de/asus+drw+24f1st+schwarz
    </URL>
    <ToolTip>16x Lesegeschwindigkeit</ToolTip>
    </Artikel>
    <Artikel Typ="Drive">
    <Name>LG BH16NS40 Blu-Ray Brenner</Name>
    <URL>
    http://www.notebooksbilliger.de/lg+bh16ns40+schwarz+187280
    </URL>
    <ToolTip>16x Lesegeschwindigkeit</ToolTip>
    </Artikel>
    <Artikel Typ="Drive">
    <Name>LiteOn iHAS124-14 DVD-Brenner</Name>
    <URL>
    http://www.notebooksbilliger.de/liteon+ihas124+14+schwarz
    </URL>
    <ToolTip>12x Lesegeschwindigkeit</ToolTip>
    </Artikel>
    <Artikel Typ="GPU">
    <Name>EVGA NVidia GeForce GTX 750</Name>
    <URL>
    http://www.notebooksbilliger.de/evga+nvidia+geforce+gtx+750
    </URL>
    <ToolTip>1GB GDDR5</ToolTip>
    </Artikel>
    <Artikel Typ="GPU">
    <Name>EVGA NVidia GeForce GTX 960</Name>
    <URL>
    http://www.notebooksbilliger.de/evga+geforce+gtx+960+superclocked/eqsqid/b4a3d9ea-4e9e-4ca7-a97e-9a5a330faf80
    </URL>
    <ToolTip>2GB GDDR5</ToolTip>
    </Artikel>
    <Artikel Typ="GPU">
    <Name>OnBoard Grafik</Name>
    <URL/>
    <ToolTip>Leistung Mainboard-abhängig</ToolTip>
    </Artikel>
    <Artikel Typ="Main">
    <Name>ASUS Z97-Pro WLAN</Name>
    <URL>
    http://www.notebooksbilliger.de/asus+z97+pro+wi+fi+ac+intel+sockel+1150
    </URL>
    <ToolTip>Intel Z97 Chipset</ToolTip>
    </Artikel>
    <Artikel Typ="Main">
    <Name>ASUS Z97-A</Name>
    <URL>
    http://www.notebooksbilliger.de/asus+z97+ausb+31+intel+sockel+1150
    </URL>
    <ToolTip>Intel Z97 Chipset, USB 3.1</ToolTip>
    </Artikel>
    <Artikel Typ="Main">
    <Name>ASUS Z87-Deluxe Quad</Name>
    <URL typ="Amazon">
    http://www.amazon.de/Z87-Deluxe-Mainboard-Sockel-Intel-Speicher/dp/B00F9RKVSK/keywords=ASUS+Z87-Deluxe+quad
    </URL>
    <ToolTip>Intel Z87 Chipset, WLAN, NFC</ToolTip>
    </Artikel>
    <Artikel Typ="Power">
    <Name>be quiet! 80PLUS Bronze</Name>
    <URL>
    http://www.notebooksbilliger.de/be+quiet+system+power+7+bulk+netzteil+400w/eqsqid/2a994f2c-0f33-4985-9b10-771471f789c1
    </URL>
    <ToolTip>400W</ToolTip>
    </Artikel>
    <Artikel Typ="Power">
    <Name>Thermaltake Hamburg</Name>
    <URL>
    http://www.notebooksbilliger.de/thermaltake+hamburg+530w+80+plus+pc+netzteil
    </URL>
    <ToolTip>530W</ToolTip>
    </Artikel>
    <Artikel Typ="RAM">
    <Name>Crucial Ballistix 2GB</Name>
    <URL>
    http://www.notebooksbilliger.de/2gb+crucial+ballistix+sport+ddr3+ram+1600+mhz
    </URL>
    <ToolTip>DDR3-RAM, 1600MHz</ToolTip>
    </Artikel>
    <Artikel Typ="RAM">
    <Name>Kingston HyperX 4GB</Name>
    <URL>
    http://www.notebooksbilliger.de/4gb+kingston+hyperx+fury+cl10+ddr3+1600+rot/eqsqid/66412903-c18e-4261-9378-9cee560f8225
    </URL>
    <ToolTip>DDR3-RAM, 1600MHz</ToolTip>
    </Artikel>
    <Artikel Typ="RAM">
    <Name>Corsair ValueSelect 8GB</Name>
    <URL>
    http://www.notebooksbilliger.de/8gb+corsair+valueselect+kit+cl9+ddr3+1333/eqsqid/238c01be-f549-4371-a8a2-c1f058a5ea67
    </URL>
    <ToolTip>DDR3-Ram, 1333MHz</ToolTip>
    </Artikel>
    <Artikel Typ="RAM">
    <Name>Crucial Ballistix 16GB</Name>
    <URL>
    http://www.notebooksbilliger.de/16gb+2x+8gb+crucial+ballistix+sport+ddr3+ram+1600+mhz
    </URL>
    <ToolTip>DDR3-RAM, 1600MHz</ToolTip>
    </Artikel>
    </Artikelliste>


    BLDL

    Sonntag, 4. Oktober 2015 15:29

Antworten