Creating a simple XML Parser alternative to LINQ
Here is a simple way to parse an XML string, and store its element name and values in a Hashtable which you can call its key using the GetAttribute() method.
public class Parse
{
Hashtable attributes;
public void ParseURL(string xmlData)
{
try
{
string errorString = string.Empty;
byte[] byteArray = new byte[xmlData.Length];
System.Text.ASCIIEncoding encoding = new
System.Text.ASCIIEncoding();
byteArray = encoding.GetBytes(xmlData);
attributes = new Hashtable();
// Load the memory stream
MemoryStream memoryStream = new MemoryStream(byteArray);
memoryStream.Seek(0, SeekOrigin.Begin);
XmlTextReader reader = new XmlTextReader(memoryStream);
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
string strURI = reader.NamespaceURI;
string strName = reader.Name;
if (reader.HasAttributes)
{
for (int i = 0; i < reader.AttributeCount; i++)
{
reader.MoveToAttribute(i);
if (!attributes.ContainsKey(reader.Name))
{
attributes.Add(reader.Name, reader.Value);
}
}
}
break;
default:
break;
}
}
}
catch (XmlException e)
{
Console.WriteLine("error occured: " + e.Message);
}
}
public string GetAttribute(string key)
{
try
{
return attributes[key].ToString();
}
catch (XmlException e)
{
return "error occured: " + e.Message;
}
}
}