Accueil > > > COMPTEUR DE VISITE DANS XML
COMPTEUR DE VISITE DANS XML
Information sur la source
Description
Ce code montre comment enregistrer dans un fichier XML le nombre de visite que vous avez sur une page. Il n'y a rien d'exceptionnel, mais traite beaucoup d'XML, on a la une gestion assez complete de lire, ecrire, modifier des données contenus dans un fichier XML Ce code fait suite à ce post http://www.aspfr.com/forum.v2.aspx?rm=1&ID=305546 Le constructeur nécessite l'objet Page de la page en cours ainsi on peut mettre ce code dans une DLL voici un exemple d'utilisation : Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim PS As New PageStat(Page) If Not Page.IsPostBack Then PS.WriteStat() End If Response.Write("Vous etes la " & PS.ReadStat & "ème visite") End Sub
Source
Imports System.IO
Imports System.Xml
''' -----------------------------------------------------------------------------
''' <summary>
'''
''' </summary>
''' <example>Cet exemple montre comment se servir de la classe
''' <code>
''' Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
''' Dim PS As New PageStat(Page)
''' If Not Page.IsPostBack then
''' PS.WriteStat()
''' End If
''' Response.Write("Vous etes la " & PS.ReadStat & "ème visite")
''' End Sub
''' </code>
''' </example>
''' -----------------------------------------------------------------------------
Public Class PageStat
#Region " Variables "
'Contient le chemin du fichier xml
Private XmlPath As String
'Contient l'instance de la page
Private Page As System.Web.UI.Page
#End Region
''' -----------------------------------------------------------------------------
''' <summary>
''' Fonction creant le fichier XML conservant les données
''' </summary>
''' -----------------------------------------------------------------------------
Private Sub CreateXml()
'on verifie la presence du dossier /Data et on le cree si besoin
If Not Directory.Exists(Page.Server.MapPath("") & "\Data") Then
Dim Dir As New DirectoryInfo(Page.Server.MapPath(""))
Dir.CreateSubdirectory("Data")
End If
'on verifie la presence de Data/PageStat.xml et on le cree si besoin
If Not File.Exists(Page.Server.MapPath("Data") & "\PageStat.xml") Then
'on stocke le chemin du fichier xml
XmlPath = Page.Server.MapPath("Data/PageStat.xml")
'Creation du Fichier XML
Dim XMLobj As System.Xml.XmlTextWriter
Dim ue As New System.[Text].UnicodeEncoding
XMLobj = New System.Xml.XmlTextWriter(XmlPath, ue)
'indentation etc...
XMLobj.Formatting = System.Xml.Formatting.Indented
XMLobj.Indentation = 3
XMLobj.WriteStartDocument()
'Commentaires
XMLobj.WriteComment("XML crée pour Enregistrer le nombre de passage sur une page par Cyril Durand")
XMLobj.WriteComment("http://www.codes-sources.com/auteurdetail.aspx?ID=19303")
XMLobj.WriteComment("crée le " & Now.ToLongDateString)
'Noeud parent
XMLobj.WriteStartElement("Pages") 'Pages
XMLobj.WriteEndElement() '/Pages
'Fermeture
XMLobj.Close()
End If
End Sub
''' -----------------------------------------------------------------------------
''' <summary>
''' Instanciation de la Class PageStat
''' </summary>
''' <param name="InstanceOfPage">instance de l'objet Page de la page qui appelle la class</param>
''' -----------------------------------------------------------------------------
Public Sub New(ByVal InstanceOfPage As System.Web.UI.Page)
Page = InstanceOfPage
CreateXml()
End Sub
''' -----------------------------------------------------------------------------
''' <summary>
''' Ajoute une visite à la page en cours
''' </summary>
''' -----------------------------------------------------------------------------
Public Sub WriteStat()
'On va lire la valeur du compteur
Dim Compteur As Decimal = ReadStat()
Dim Doc As New XmlDocument
Doc.Load(XmlPath)
Select Case Compteur
'On doit créer un noeud <Page>
Case 0 Or -1
'ajout des stats de la page
Dim mElement As XmlElement
mElement = Doc.CreateElement("Page")
mElement.InnerText = 1.ToString
mElement.SetAttribute("PageName", Page.Request.CurrentExecutionFilePath)
'Fermeture du fichier
Doc.DocumentElement.AppendChild(mElement)
Doc.Save(XmlPath)
'On indente de 1 le noeud
Case Else
Dim Node As XmlNode = Doc.DocumentElement.FirstChild
'on recherche le noeud jusqu'a l'avoir trouvé puis on l'indente de 1
Do Until Node Is Nothing
If Node.Attributes(0).Value = Page.Request.CurrentExecutionFilePath Then
Node.InnerText = (Compteur + 1).ToString
Exit Do
End If
Node = Node.NextSibling
Loop
'on enregistre
Doc.Save(XmlPath)
End Select
End Sub
''' -----------------------------------------------------------------------------
''' <summary>
''' Lit le nombre de visite de la page en cours
''' </summary>
''' <returns>Le nombre de visite de la page en cours</returns>
''' -----------------------------------------------------------------------------
'''
Public Function ReadStat() As Decimal
'On appelle ReadStat avec le nom de la page en cours en paramètre
Return ReadStat(Page.Request.CurrentExecutionFilePath)
End Function
''' -----------------------------------------------------------------------------
''' <summary>
''' Lit le nombre de visite de la page Demandé
'''
''' Merci à Seb_d_angers d'avoir vu qu'il manquait quelque chose :p et d'avoir écrit cette fonction :)
''' </summary>
''' <returns>Le nombre de visite de la page Demandé</returns>
''' -----------------------------------------------------------------------------
'''
public function ReadStat(PageName as string ) as integer
dim ret as integer = 0
dim doc as new XmlDocument();
Doc.Load(sFile)
dim Node as XmlNode = Doc.DocumentElement.FirstChild
if not Node is nothing
' on recherche le noeud jusqu'a l'avoir trouvé puis on lit
do
if (Node.Attributes(0).Value == PageName)
ret = System.Convert.ToInt32(Node.InnerText)
exit do
end if
Node = Node.NextSibling
loop while (Node is nothing)
end if
return ret
end function
End Class
Conclusion
Le code a été fait rapidement et n'a pas été testé sur du long terme, si vous trouver des erreurs, des optimisations possibles, ou alors tout autre commentaire, n'hésitez pas à me donner votre avis.
Historique
- 03 octobre 2004 00:33:55 :
- 04 avril 2005 10:04:21 :
- Oublie d'un bout de code, merci à Seb_d_angers de me l'avoir dit et donné le code manquant.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
j'arrive pas à lire un xml avec xmldocument [ par pmoury ]
je recupere un xml dans un string mais impossible de le lire pour recuperer le resultat avec xlmdocument au moment du load, j'ai un erreurmon code :mo
Un compteur de visite [ par Jackboy ]
Allo, je recherche un moyen de faire un compteur de visiteur du genre comme ici dans ce site " 32 visiteur présentement sur le chat", mais ce code dev
compteur de visite(urgent please read this message) [ par omaroch ]
bonjour tt le monde,voila mon probleme: je fais un compteur de vistes en asp qui marche nickel. il enregistre sur un fichier a chaque fois que je me c
compteur de visite [ par erasheed21 ]
je cherche un moyen de compter le nombre de visites de chaque page .aspx exemple: page1.aspx : nbrevisites :152page2.aspx : nbrevisites :33etc..merc
Problème de chargement d'un fichier XML :s [ par khalid220v ]
Je suis entrain de développer une application web qui va aller charger un fichier XML présent dans le répertoire App_Data qui est évidement présent d
Lire un fichier XML en asp pur [ par TheBuzzer ]
J'ai un fichier XML à plusieurs niveaux et je n'arrive pas à lire le contenu, on me retourne constamment des erreurs d'objet manquant ou [] en trop!?
galerie audiio [ par sibel ]
[b]Si quelqu'un veut tester ces performances en AS et XML, j'ai une colle!!! J'ai une gallerie audio dans mon site : http://www.betc-communication.c
Probleme Xpath [ par kaygee ]
ello, j'ai un souci pour retrouver un élément dans mon xml j'ai un xml dont je n'ai aucune valeur d'attribut me permettant de retrouver un élément s
de uml vers xml a travers xslt [ par bochradhouib ]
bonjour, je veux savoir,svp,comment passer d'un document.xmi vers un autre document .xml a travers un xslt.... Pouvez vous me donner un exemple,ça ser
Changer le content type de text/xml vers "application/vnd.google-earth.kmz kmz" [ par Seb_d_angers ]
Bonjour, Je cherche à afficher des info dans google earth avec une mise à jour périodique. Google earth sait très bien faire cela. Il va chercher un
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
GRIDVIEW CHECKBOXGRIDVIEW CHECKBOX par invent001
Cliquez pour lire la suite par invent001 OUTIL MYSQLOUTIL MYSQL par nobla
Cliquez pour lire la suite par nobla
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|