Click here to Skip to main content
Licence 
First Posted 29 May 2002
Views 166,665
Bookmarked 36 times

XML parsing in C#

By | 29 May 2002 | Article
This project gives you a head start to write an XML parser in C#.

Introduction

This project gives you a head start to write an XML parser in C#. The important namespace to achieve our goal is System.Xml. Though you might find it strange, unlike other languages/class libraries their are no direct functions like startElement and endElement to your rescue. You will have to manage all this on your own. So let's start looking at this important block of the code

void ParseURL(string strUrl)
{
    try
    {
        XmlTextReader reader = new XmlTextReader(strUrl);
        while (reader.Read())
        {
            switch (reader.NodeType)
            {
            case XmlNodeType.Element:
                Hashtable attributes = new Hashtable();
                string strURI= reader.NamespaceURI;
                string strName= reader.Name;
                if (reader.HasAttributes)
                {
                    for (int i = 0; i < reader.AttributeCount; i++)
                    {
                        reader.MoveToAttribute(i);
                        attributes.Add(reader.Name,reader.Value);
                    }
                }
                StartElement(strURI,strName,strName,attributes);
            break;
             //
             //you can handle other cases here
             //
 
             //case XmlNodeType.EndElement:
             // Todo
             //case XmlNodeType.Text:
             // Todo
            default:
            break;
        }
    }
    catch (XmlException e)
    {
        Console.WriteLine("error occured: " + e.Message);
    }
}

As we see the main class here is XmlTextReader. XmlTextReader provides forward-only, read-only access to a stream of XML data. The current node refers to the node on which the reader is positioned. The reader is advanced using any of the read methods and properties reflect the value of the current node. Note that we cache the element name before we move to the attributes.

The NodeType property of XmlTextReader gets the type of the current node. Accordingly we process the node and call necessary functions on it.

You can forward me your comments at lparam@hotmail.com

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Sanjay Ahuja



United States United States

Member

Sanjay Ahuja is a Bachelor of Engineer and has completed his CDAC in Pune,India. He is currently working as a consultant for Verizon.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionNot working PinmemberLjupco Sofijanov0:50 23 Jun '11  
GeneralHashtable not available PinmemberMember 78970293:41 11 May '11  
GeneralRe: Hashtable not available PinmemberLiaqat Fayyaz9:26 3 Sep '11  
GeneralBug PinmemberNanodeath10:16 13 Jul '07  
GeneralTypo PinsussAnonymous14:24 31 Mar '03  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120517.1 | Last Updated 30 May 2002
Article Copyright 2002 by Sanjay Ahuja
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid