用VS2005 编写的DOM.(append.insert.replace.remove)
http://tech.ddvip.com 2007年10月05日 社区交流
内容摘要:本文介绍如何用C#生成一个完整的xml文件?主要是<?xml version=1.0>这个标记怎样生成?
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Xml;publicpartialclass_Default:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
XmlDocumentdocument=newXmlDocument();
AddElement(document);
RepalceElement(document);
RepalceAttrbute(document);
InsertElement(document);
RemoveElement(document);
}
privatevoidAddElement(XmlDocumentdocument) //添加元素
{
XmlDeclarationdeclaration=document.CreateXmlDeclaration("1.0","gb2312","yes");
document.AppendChild(declaration);
XmlElementbookselement=document.CreateElement("books");
document.AppendChild(bookselement);
XmlElementbkelement=document.CreateElement("book");
bookselement.AppendChild(bkelement);
XmlElementnameelement=document.CreateElement("name");
nameelement.InnerText="java";
bkelement.AppendChild(nameelement);
XmlElementpriceelement=document.CreateElement("price");
priceelement.InnerText="120";
bkelement.AppendChild(priceelement);
XmlElementauthorelement=document.CreateElement("author");
authorelement.SetAttribute("id","1");
authorelement.InnerText="welinmus";
bkelement.AppendChild(authorelement);
bkelement=document.CreateElement("book");
bookselement.AppendChild(bkelement);
nameelement=document.CreateElement("name");
nameelement.InnerText="XML";
bkelement.AppendChild(nameelement);
priceelement=document.CreateElement("price");
priceelement.InnerText="100";
bkelement.AppendChild(priceelement);
authorelement=document.CreateElement("author");
authorelement.SetAttribute("id","2");
authorelement.InnerText="Lobinshion";
bkelement.AppendChild(authorelement);
bkelement=document.CreateElement("book");
bookselement.AppendChild(bkelement);
nameelement=document.CreateElement("name");
nameelement.InnerText="SQLServer";
bkelement.AppendChild(nameelement);
priceelement=document.CreateElement("price");
priceelement.InnerText="110";
bkelement.AppendChild(priceelement);
authorelement=document.CreateElement("author");
authorelement.SetAttribute("id","3");
authorelement.InnerText="John.Smith";
bkelement.AppendChild(authorelement);
document.Save(Server.MapPath("books.xml"));
}
privatevoidRepalceElement(XmlDocumentdocument) //替换文本节点
{
document.Load(Server.MapPath("books.xml"));
XmlNodeListnodelist=document.GetElementsByTagName("*");
XmlElementelement;
for(inti=0;i<nodelist.Count;i++)
{
element=(XmlElement)nodelist[i];
if(element.Name=="name")
{
if(element.ChildNodes[0].Value=="java")
{
element.InnerText="jsp";
break;
}
}
}
document.Save(Server.MapPath("books.xml"));
}
privatevoidRepalceAttrbute(XmlDocumentdocument) //替换属性节点
{
document.Load(Server.MapPath("books.xml"));
XmlNodeListnodelist=document.GetElementsByTagName("*");
XmlElementelement;
for(inti=0;i<nodelist.Count;i++)
{
element=(XmlElement)nodelist[i];
if(element.GetAttribute("id")=="1")
{
element.SetAttribute("id","5");
break;
}
}
document.Save(Server.MapPath("books.xml"));
}
privatevoidInsertElement(XmlDocumentdocument) //插入元素
{
document.Load(Server.MapPath("books.xml"));
XmlNodeListnodelist=document.GetElementsByTagName("*");
XmlElementelement;
XmlElementpageelement=document.CreateElement("page");
pageelement.InnerText="350页";
for(inti=0;i<nodelist.Count;i++)
{
element=(XmlElement)nodelist[i];
if(element.Name=="book")
{
if(element.ChildNodes[0].InnerText=="XML")
{
element.InsertAfter(pageelement,element.FirstChild);
break;
}
}
}
document.Save(Server.MapPath("books.xml"));
}
privatevoidRemoveElement(XmlDocumentdocument) //删除元素
{
document.Load(Server.MapPath("books.xml"));
XmlNodeListnodelist=document.GetElementsByTagName("*");
XmlElementelement;
for(inti=0;i<nodelist.Count;i++)
{
element=(XmlElement)nodelist[i];
if(element.Name=="book")
{
if(element.ChildNodes[0].InnerText=="XML")
element.RemoveChild(element.ChildNodes[1]);
}
}
document.Save(Server.MapPath("books.xml"));
}
}
责编:豆豆技术应用