try
{
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml("<Country></Country>"); //Created the Parent Node.
XmlNode xCity = xDoc.CreateNode(XmlNodeType.Element, "City", "");
XmlNode xZoneNode = xDoc.CreateNode(XmlNodeType.Element, "Zone", "");
XmlNode xAreaNode = xDoc.CreateNode(XmlNodeType.Element, "Area", "");
XmlAttribute xCountryName = xDoc.CreateAttribute(XmlNodeType.Attribute.ToString(), "Name", "");
XmlNode xCityName = xDoc.CreateNode(XmlNodeType.Element, "Name", "");
xCountryName.Value = "India";
xCityName.InnerText = "Ahmedabad";
xAreaNode.InnerText = "Ahm";
xCity.AppendChild(xCityName);
xZoneNode.AppendChild(xAreaNode);
xCity.AppendChild(xZoneNode);
xDoc.DocumentElement.AppendChild(xCity);
xCity = xDoc.CreateNode(XmlNodeType.Element, "City", "");
xZoneNode = xDoc.CreateNode(XmlNodeType.Element, "Zone", "");
xAreaNode = xDoc.CreateNode(XmlNodeType.Element, "Area", "");
xCityName = xDoc.CreateNode(XmlNodeType.Element, "Name", "");
xCityName.InnerText = "Banglore";
xAreaNode.InnerText = "Bgr";
xCity.AppendChild(xCityName);
xZoneNode.AppendChild(xAreaNode);
xCity.AppendChild(xZoneNode);
xDoc.DocumentElement.AppendChild(xCity);
xCity = xDoc.CreateNode(XmlNodeType.Element, "City", "");
xZoneNode = xDoc.CreateNode(XmlNodeType.Element, "Zone", "");
xAreaNode = xDoc.CreateNode(XmlNodeType.Element, "Area", "");
xCityName = xDoc.CreateNode(XmlNodeType.Element, "Name", "");
xCityName.InnerText = "Pune";
xAreaNode.InnerText = "pn";
xCity.AppendChild(xCityName);
xZoneNode.AppendChild(xAreaNode);
xCity.AppendChild(xZoneNode);
xDoc.DocumentElement.AppendChild(xCity);
xDoc.DocumentElement.Attributes.Append(xCountryName);
//See ur out put here
string outPut = xDoc.DocumentElement.OuterXml;
//-------- This will Give output as ' ---------------//
////< Country Name="India" >
//// < City>
//// < Name >Ahmedabad
//// < Zone >
//// < Area >Ahm< /Area >
//// < /Zone >
//// < /City >
//// < City >
//// < Name >Banglore< /Name >
//// < Zone >
//// < Area >Bgr< /Area >
//// < /Zone >
//// < /City >
//// < City >
//// < Name >Pune
//// < Zone >
//// < Area>pn
//// < /Zone >
////
////
//now to query this Document Using the xPath u can do something like this
string nameParam = "Pune";
//get city name which is dependent upon the given area (set in areaParam)
string cityName = xDoc.DocumentElement.SelectSingleNode("City[@Name='"+nameParam+"']/Zone/Area").InnerText;
//-------- This will Give output as pn' ---------------//
}
catch (Exception e)
{ }