Chaining an XmlReader to an XmlWriter : XmlReader « XML « C# / CSharp Tutorial

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » XML » XmlReader 
30.5.7.Chaining an XmlReader to an XmlWriter
using System;
using System.Xml; 
using System.IO;
using System.Text;
public class Test2{
  static string ipKey;
  static string httpMethodKey;
  static string fileKey; 
  static string dateKey;
  static string referrerKey; 

  public static void WriteAttributes(XmlReader reader, XmlWriter writer){
    
    if(reader.MoveToFirstAttribute()){
      do{
        writer.WriteAttributeString(reader.Prefix, 
                reader.LocalName, 
                reader.NamespaceURI,
                reader.Value)
      }while(reader.MoveToNextAttribute());
      reader.MoveToElement()
    }
  }

  public static void WriteEvent(XmlWriter writer, string ip){
    
    writer.WriteStartElement("event")
    writer.WriteElementString("ip", ip);
    writer.WriteEndElement()
  

  public static void ReadEvent(XmlReader reader, out string ip){

    ip = null

    whilereader.Read() && reader.NodeType != XmlNodeType.EndElement){                
      
 if (reader.NodeType == XmlNodeType.Element) {
          
     if(reader.Name == ipKey){   
       ip = reader.ReadString()
     }
    }//while   
  }
  }
  public static void Main(string[] args){
    string ip; 
    XmlNameTable xnt = new NameTable()
    ipKey            = xnt.Add("ip")
    
    //load XmlTextReader using XmlNameTable above 
    XmlTextReader xr = new XmlTextReader("logfile.xml", xnt);
    xr.WhitespaceHandling = WhitespaceHandling.Significant;

    XmlValidatingReader vr = new XmlValidatingReader(xr);
    vr.ValidationType = ValidationType.None;
    vr.EntityHandling = EntityHandling.ExpandEntities; 


    StreamWriter sw =  new StreamWriter ("logfile-archive.xml", false, Encoding.UTF8 )
    XmlWriter xw    = new XmlTextWriter (sw);                 
    
    vr.MoveToContent();
    xw.WriteStartElement(vr.Prefix, vr.LocalName, vr.NamespaceURI);
    WriteAttributes(vr, xw);    
     
    vr.Read()
    do
    {
      ReadEvent(vr, out ip);
      WriteEvent(xw,ip)
      vr.Read()
    while(vr.NodeType == XmlNodeType.Element);
     
   
    vr.Close();
    xw.Close();
  }
}
30.5.XmlReader
30.5.1.XmlReader: ReadElementContentAsString
30.5.2.Create XmlReader from Stream
30.5.3.Using XmlReader to read Xml result set from database
30.5.4.XmlReaderSettings and XmlWriterSettings
30.5.5.XmlTextReader in Action
30.5.6.Read Xml output from database
30.5.7.Chaining an XmlReader to an XmlWriter
30.5.8.extends XmlReader to wrap Sql statement
30.5.9.Create the validating reader
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.