vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
Re: Geschachtelte XML auslesen 
Autor: GhostRE
Datum: 26.06.08 14:21

Wenn es noch aktuell sein sollte, hier eine kleine Beispielklasse:

Imports Microsoft.VisualBasic
Imports System.IO
Imports System.Text
Imports System.Xml
 
Public Class XMLCounter
 
 
   ''' <summary>
   ''' Pfad zum XML - Dokument
   ''' </summary>
   ''' <value></value>
   ''' <returns></returns>
   ''' <remarks></remarks>
   Public ReadOnly Property XmlDatei() As String
      Get
         Return System.Web.HttpContext.Current.Server.MapPath( _
           "~/app_data/counter.xml")
      End Get
   End Property
 
   Public Function ReadCounter() As Hashtable
      Dim locobjDoc As New XmlDocument
      Dim locobjUrlElement As XmlElement
      Dim locobjList As XmlNodeList
      Dim locobjHashTable As New Hashtable
 
      'XML-Dokument laden
      locobjDoc.Load(Me.XmlDatei)
 
      'Elemente auflisten
      locobjList = locobjDoc.SelectNodes("*//URL")
 
      For Each locobjUrlElement In locobjList
         locobjHashTable.Add(locobjUrlElement.Attributes("Name").Value, _
           locobjUrlElement.SelectSingleNode("Count").FirstChild.Value)
      Next
 
      Return locobjHashTable
 
   End Function
 
   Public Function GetCount(ByVal strCounterName As String) As Long
      Dim locobjDoc As New XmlDocument
      Dim locobjElement As XmlElement
 
      'XML-Dokument laden
      locobjDoc.Load(Me.XmlDatei)
 
      'einzelnes Element auswählen
      locobjElement = locobjDoc.SelectSingleNode("*//URL[@Name='" & _
        strCounterName & "']/Count")
      If locobjElement IsNot Nothing Then
         Return locobjElement.FirstChild.Value
      Else
         Return 0&
      End If
   End Function
 
   Public Function IncreaseCounter(ByVal strCounterName As String) As Long
      Dim locobjDoc As New XmlDocument
      Dim locobjElement As XmlElement
      Dim loclngValue As Long
 
      'XML-Dokument laden
      locobjDoc.Load(Me.XmlDatei)
 
      'einzelnes Element auswählen
      locobjElement = locobjDoc.SelectSingleNode("*//URL[@Name='" & _
        strCounterName & "']/Count")
      If locobjElement IsNot Nothing Then
         'Counter erhöhen
         loclngValue = locobjElement.FirstChild.Value + 1&
         locobjElement.FirstChild.Value = loclngValue
         locobjDoc.Save(Me.XmlDatei)
      Else
         NewCounter(strCounterName, 1&)
         loclngValue = 1&
      End If
      Return loclngValue
 
   End Function
 
   Public Sub NewCounter(ByVal strCounterName As String, ByVal lngStartValue As _
     Long)
      Dim locobjDoc As New XmlDocument
      Dim locobjElement As XmlElement
      Dim locobjNewElement As XmlElement
      Dim locobjAttribute As XmlAttribute
 
      'XML-Dokument laden
      locobjDoc.Load(Me.XmlDatei)
 
      'Startelement suchen
      locobjElement = locobjDoc.SelectSingleNode("Counter")
 
      'Neues Element
      locobjNewElement = locobjDoc.CreateNode(XmlNodeType.Element, "URL", "")
      locobjElement.AppendChild(locobjNewElement)
 
      'neues Attribut
      locobjAttribute = locobjDoc.CreateAttribute("Name")
      locobjAttribute.Value = strCounterName
      locobjNewElement.SetAttributeNode(locobjAttribute)
 
      'Elternelement wechseln
      locobjElement = locobjNewElement
 
      'Neues Element für den Counterwert
      locobjNewElement = locobjDoc.CreateNode(XmlNodeType.Element, "Count", "")
      locobjNewElement.InnerText = lngStartValue
      locobjElement.AppendChild(locobjNewElement)
 
      'Neues Element für das Erstellungsdatum
      locobjNewElement = locobjDoc.CreateNode(XmlNodeType.Element, "Created", _
        "")
      locobjNewElement.InnerText = DateTime.Now
      locobjElement.AppendChild(locobjNewElement)
 
      'Dokument speichern
      locobjDoc.Save(Me.XmlDatei)
 
   End Sub
End Class
Die XML-Datei sieht so aus

<?xml version="1.0" encoding="utf-8"?>
<Counter>
  <URL Name="Seite1.aspx">
    <Count>988</Count>
    <Created>10.04.2007 16:54:33</Created>
  </URL>
  <URL Name="Seite2.aspx">
    <Count>81</Count>
    <Created>10.04.2007 16:57:14</Created>
  </URL>
  <URL Name="Seite3.aspx">
    <Count>151</Count>
    <Created>10.04.2007 17:02:05</Created>
  </URL>
</Counter>
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Geschachtelte XML auslesen2.615mctimotheus19.06.08 08:37
Re: Geschachtelte XML auslesen1.563GhostRE26.06.08 14:21
Re: Geschachtelte XML auslesen1.488Melkor26.06.08 15:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel