Hi Friends
Could you please provide me the code to creat and insert the values in XML file.
I have to use ASP.NET using C#
Thanks in advance
Regards
Prabha
Loading
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question.
LeePosted Jan 12, 2006, 9:01 AM
using
System;using
System.Xml;using
System.Data;using
System.Data.SqlClient;namespace
CMS{
///{
protected Data cData; protected XmlTextWriter oXML; protected string sChannel = ""; protected SqlDataReader mReader; public Menu(){
// // TODO: Add constructor logic here //}
public void BuildXML(string sPath){
int iLevel=-1; int sImgID = 0; int iClose; cData = new Data(); try{
oXML = new XmlTextWriter(sPath, null); //"D:\\NavMenu.xml" oXML.Formatting = Formatting.Indented; oXML.WriteStartDocument(); oXML.WriteStartElement("Menu"); oXML.WriteStartElement("datum"); oXML.WriteAttributeString("jahr", DateTime.Now.Year.ToString("####")); oXML.WriteAttributeString("monat", DateTime.Now.Month.ToString("##")); oXML.WriteAttributeString("tag", DateTime.Now.Day.ToString("##")); oXML.WriteEndElement(); //Put some copyright information in the file. oXML.WriteStartElement("erstellt"); oXML.WriteAttributeString("von", "Navigation Builder"); oXML.WriteAttributeString("Copyright", "RheinSiteMedia © 2004"); oXML.WriteAttributeString("Beschreibung", "XML navigation menü"); oXML.WriteEndElement(); //Get all the records from the database. mReader = cData.OpenRS("SELECT vwGetNavMenu.* FROM vwGetNavMenu"); while(mReader.Read()) //All the while we have records to read.{
sImgID++; if(iLevel < Convert.ToInt32(mReader["MLevel"].ToString())) //The level is higher than the one before.{
//Create the level and add some attributes. oXML.WriteStartElement("Level"); oXML.WriteAttributeString("Value", mReader["MLevel"].ToString()); iLevel = Convert.ToInt32(mReader["MLevel"].ToString()); oXML.WriteStartElement("MenuItem"); WriteDetails(); //And close the MenuItem oXML.WriteEndElement();}
else if(iLevel == Convert.ToInt32(mReader["MLevel"].ToString())) //The level is the same as the one before.{
for(iClose = iLevel;iClose >= Convert.ToInt32(mReader["MLevel"].ToString());iClose--){
CloseLevel();}
sChannel = mReader["ID"].ToString(); oXML.WriteStartElement("Level"); oXML.WriteAttributeString("Value", mReader["MLevel"].ToString()); oXML.WriteStartElement("MenuItem"); WriteDetails(); oXML.WriteEndElement();}
else if(iLevel > Convert.ToInt32(mReader["MLevel"].ToString())) //The level is higher than the level before{
for(iClose = iLevel;iClose >= Convert.ToInt32(mReader["MLevel"].ToString());iClose--){
CloseLevel();}
if (mReader["Parent"].ToString() == "0") sChannel = mReader["ID"].ToString(); else sChannel = mReader["Parent"].ToString() + "." + mReader["ID"].ToString(); oXML.WriteStartElement("Level"); oXML.WriteAttributeString("Value", mReader["MLevel"].ToString()); oXML.WriteStartElement("MenuItem"); WriteDetails(); oXML.WriteEndElement(); iLevel = Convert.ToInt32(mReader["MLevel"].ToString());}
}
mReader.Close(); for(iClose = iLevel;iClose > 0;iClose--){
CloseLevel();}
oXML.WriteEndDocument(); oXML.Flush(); oXML.Close();}
catch{
oXML.Flush(); oXML.Close();}
}
private void CloseLevel(){
oXML.WriteEndElement();}
private void WriteDetails(){
oXML.WriteElementString("Name", mReader["MName"].ToString()); oXML.WriteElementString("Url", mReader["Url"].ToString()); oXML.WriteElementString("Parent", mReader["Parent"].ToString()); oXML.WriteElementString("ID", mReader["ID"].ToString()); oXML.WriteElementString("ChannelID", mReader["ChannelNum"].ToString()); oXML.WriteElementString("Visible", Convert.ToBoolean(mReader["Visible"].ToString())==true?"1":"0"); oXML.WriteElementString("HasChild", Convert.ToBoolean(mReader["HasChildren"].ToString())==true?"1":"0"); oXML.WriteElementString("GroupOrder", mReader["GroupOrder"].ToString()); oXML.WriteElementString("MainOrder", mReader["MainOrder"].ToString()); oXML.WriteElementString("StatusText", mReader["StatusText"].ToString()); oXML.WriteElementString("Spacer", Convert.ToBoolean(mReader["Spacer"].ToString())==true?"1":"0");}
}
}
I hope this helps.