以下为引用的内容:
Code: 1) counter.aspx :- The Counter Page
<%@ Import Namespace="System.IO" %> <%@ Assembly Name="System.xml(标准化越来越近了)" %> <%@ Import Namespace="System.xml(标准化越来越近了)" %> <%@ page language="c#" EnableSessionState="True" %> <%-- These are the imported assembiles and namespaces need to run the counter --%> <html> <head> <title>Saurabh's xml(标准化越来越近了) Counter Script</title> <script language="C#" runat="server"> //script is called when the page is loaded public void Page_Load(Object src, EventArgs e) { //the path to the xml(标准化越来越近了) file which will contain all the data //modify this if you have any other file or directory mappings. //modify this if you have been directed here from Step 2 of the ReadMe file. string datafile="db/xml(标准化越来越近了)counter.xml(标准化越来越近了)" ;
if(!Page.IsPostBack){ //try-catch block containing the counter code try { //create an instance of the class xml(标准化越来越近了)Document xml(标准化越来越近了)Document xml(标准化越来越近了)document = new xml(标准化越来越近了)Document() ;
//Open a FileStream to the specified file FileStream fin ; //It is very Important to specify the "FileShare.ReadWrite" option. //This allows other viewers to also read and write to the Database //This was missing in my last release hence there was a BUG !!! fin = new FileStream(Server.MapPath(datafile), FileMode.Open, FileAccess.Read, FileShare.ReadWrite) ; //Load the Document xml(标准化越来越近了)document.Load(new StreamReader(fin)) ; fin.Close(); //create an instance of the DocumentNavigator class used to //navigate through and xml(标准化越来越近了) file DocumentNavigator navigator = new DocumentNavigator(xml(标准化越来越近了)document) ;
//Move to the first element (in my file 'Visitors') navigator.MoveToDocumentElement() ; //move to it child at position '0' (ie.in my file 'total' node) navigator.MoveToChild(0) ;
//check if we are on the right element which has an attribute if (navigator.HasAttributes) { //get the attribute of the node 'total' called 'tot' (see the xml(标准化越来越近了)counter.xml(标准化越来越近了) file) //since the value stored is in a string format we 'cast' it into a Int type int total = int.Parse(navigator.GetAttribute("tot")) ; //increase the counter total++ ; //show the counter on the page countmess.Text = "You are visitor N "+total.ToString() ; //save the incremented counter back in the xml(标准化越来越近了) file navigator.SetAttribute(0,total.ToString() ); }
//Update the Database only if a new session is there if(Session["counter"]==null) { //move back to the Document element navigator.MoveToDocumentElement() ; navigator.MoveToChild(0) ; //then insert the element after the 'total' element which will contain all //the information of a single visitor navigator.Insert(TreePosition.After , xml(标准化越来越近了)NodeType.Element, "Viewer","","") ; //make an instance to the HttpUrl class to get information of the referrer to //the page if any. if there are no referrers then by Default this object is 'null' //so we have to make a check if it is null and do the needful HttpUrl objUrl = Request.UrlReferrer; if(objUrl!=null) { navigator.Insert(TreePosition.FirstChild, xml(标准化越来越近了)NodeType.Element,"Referrer","",""); navigator.Insert(TreePosition.FirstChild, xml(标准化越来越近了)NodeType.Text,"Referrer","","") ;
|