using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Xml;
namespace CSParser
{
///
/// Summary description for CSParser.
///
///
class SXParser
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
if(args.Length< 1)
{
Console.WriteLine("usage: csparser ");
return;
}
SXParser sp= new SXParser();
sp.ParseURL(args[0]);
}
/*
reader of type XmlTextReader
reader.NodeType == XmlNodeType.Element
reader.NamespaceURI;
reader.Name
*/
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);
Console.WriteLine(reader.Name+" = "+reader.Value);
}
}
StartElement(strURI,strName,strName,attributes);
break;
//
//you can handle other cases here
//
case XmlNodeType.EndElement:
Console.WriteLine("!!end element: "+reader.Value + "and nname is "+ reader.Name); break;
// Todo
case XmlNodeType.Text:
Console.Write("!!text:");
Console.WriteLine(reader.Name); // prints nothing
Console.WriteLine(reader.Value);
break;
// Todo
default:
break;
}
}
}
catch (XmlException e)
{
Console.WriteLine("error occured: " + e.Message);
}
}
public void StartElement(string namespaceURI,string sName,
string qName,Hashtable attrs)
{
Console.Write(namespaceURI + " - ");
Console.Write(sName + " - ");
Console.WriteLine(qName);
}
}
}