Eigentlich hatte Martin Hey genau im richtigen Moment seinen Post zum Thema veröffentlicht.

 

Aber dann fiel mir ein, dass wenn es einen Vorteil von VB.NET gegenüber c# gibt, dann ja wohl im XML-Bereich.

 

Ein Imports am Kopf der Seite reicht um den Namespace Global einzufügen.

Das Ganze gepaart mit einem InsertAllOnSubmit habe ich in ein paar wenigen Zeilen alle Categories aus meinem XML-Dokument in die Datenbank importiert.

 

 

    1 Imports <xmlns="http://www.ticketonline.de/ticketonlineevents/1.0">

    2 Imports <xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    3 

    4 Partial Class LoadTicketOnline

    5     Inherits System.Web.UI.Page

    6 

    7     Protected Sub Page_Load(ByVal sender As Object, _

    8                             ByVal e As System.EventArgs) Handles Me.Load

    9 

   10         Dim XMLPath As String = Server.MapPath("/LoadticketOnline.XML")

   11         Dim x As XDocument = XDocument.Load(XMLPath)

   12 

   13         Response.Write(x.<ticketonlineevents>.<categories>.<category>.Count)

   14 

   15         Dim dbEvents As New dbEventsDataContext

   16 

   17         Dim categories = From p1 In x.<ticketonlineevents>.<categories>.<category> _

   18                          Select New t_EventCategory With _

   19                                 { _

   20                                 .d_CategoryID_TO = p1.@id.Substring(3), _

   21                                 .d_name = p1.@name, _

   22                                 .d_name_TO = p1.@name _

   23                                 }

   24 

   25         dbEvents.t_EventCategory.InsertAllOnSubmit(categories)

   26         dbEvents.SubmitChanges()

   27 

   28     End Sub

   29 End Class

 

 Und ein Ausschnitt aus der XML-Datei:

 

    1 <?xml version="1.0" encoding="utf-8"?>

    2 <ticketonlineevents xmlns="http://www.ticketonline.de/ticketonlineevents/1.0"

    3                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    4                     xsi:schemaLocation="http://www.ticketonline.de/ticketonlineevents/1.0/ticketonlineevents.xsd">

    5     <meta>

    6         <builddate>2009-07-30T07:15:01+02:00</builddate>

    7         <source>Datenquell1</source>

    8         <language>de</language>

    9     </meta>

   10     <categories>

   11         <category id="cat1000" name="all" />

   12         <category id="cat126" name="festival" />

   13         <category id="cat129" name="festival-other" />

   14         <category id="cat127" name="festival-classics" />

   15         <category id="cat128" name="festival-rock-pop" />

   16     </categories>

   17 </ticketonlineevents>