Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C# (http://www.go4expert.com/articles/c-sharp-tutorials/)
-   -   XML parsing in C# (http://www.go4expert.com/articles/xml-parsing-c-sharp-t1484/)

shabbir 28Sep2006 14:26

XML parsing in C#
 
1 Attachment(s)

Introduction



The parser gives you a place to start to write an XML parser in C#. We have used the System.Xml.

The code


Code: CSharp

public void ParseFile(string strPath)
{
    XmlTextReader xmlReader = new XmlTextReader(strPath);
    int iTab = 0;
    // Read the line of the xml file
    while (xmlReader.Read())
    {
        switch (xmlReader.NodeType)
        {
            case XmlNodeType.Element:
                Hashtable attributes = new Hashtable();
                // We add the attributes to the hash tables

                bool isEmptyElement = false;
               
                PrintWhiteSpace(iTab);

                // Print the start of the element
                Console.Write("<" + xmlReader.Name);
                isEmptyElement = xmlReader.IsEmptyElement;

                if (xmlReader.HasAttributes)
                {
                    // If element has attributes
                    for (int i = 0; i < xmlReader.AttributeCount; i++)
                    {
                        xmlReader.MoveToAttribute(i);
                        attributes.Add(xmlReader.Name, xmlReader.Value);
                        Console.Write(" " + xmlReader.Name + "=" + xmlReader.Value);
                    }
                }

                // Prints the end of the element
                if (isEmptyElement == true)
                {
                    Console.WriteLine(" />");
                }
                else
                {
                    Console.WriteLine(">");
                    iTab++;
                }                       
                break;
            case XmlNodeType.EndElement:
                iTab--;
                PrintWhiteSpace(iTab);
                Console.WriteLine("</" + xmlReader.Name + ">");
                break;
            case XmlNodeType.Text:
                PrintWhiteSpace(iTab);
                Console.WriteLine(xmlReader.Value);
                break;
            default:
                break;
        }
    }
}

I have included the comments and the code is pretty much self explanatory.

Using the code


Code: CSharp

XMLParser xml = new XMLParser();
 xml.ParseFile(@"Welcome.xml");
 Console.Read();


charbeltrad 11May2010 22:07

Re: XML parsing in C#
 
hey i have a problem solving this xml :
<Arbre_Binaire>
−<One ID="1">
−<Two ID="2">
<Four ID="4"/>
<Five ID="5"/>
</Two>
−<Three ID="3">
−<Six ID="6">
<Eight ID="8"/>
<Nine ID="9"/>
</Six>
<Seven ID="7"/>
</Three>
</One>
</Arbre_Binaire>

i want to read it from parents to childrens the output must be: One Two Three Four Five Six Seven Eight Nine
and thx

lovepc 12May2010 15:36

Re: XML parsing in C#
 
How about using the xml data binding in C#?
It will be easier to read and write...


All times are GMT +5.5. The time now is 23:21.