以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  用VS2005 编写的DOM.(append.insert.replace.remove)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=48919)


--  作者:private_man
--  发布时间:6/23/2007 10:59:00 AM

--  用VS2005 编写的DOM.(append.insert.replace.remove)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        XmlDocument document = new XmlDocument();
        AddElement(document);
        RepalceElement(document);
        RepalceAttrbute(document);
        InsertElement(document);
        RemoveElement(document);
    }

    private void AddElement(XmlDocument document)   //添加元素
    {
        XmlDeclaration declaration = document.CreateXmlDeclaration("1.0", "gb2312", "yes");
        document.AppendChild(declaration);
        XmlElement bookselement = document.CreateElement("books");
        document.AppendChild(bookselement);
        XmlElement bkelement = document.CreateElement("book");
        bookselement.AppendChild(bkelement);
        XmlElement nameelement = document.CreateElement("name");
        nameelement.InnerText = "java";
        bkelement.AppendChild(nameelement);
        XmlElement priceelement = document.CreateElement("price");
        priceelement.InnerText = "120";
        bkelement.AppendChild(priceelement);
        XmlElement authorelement = 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"));
    }


    private void RepalceElement(XmlDocument document)       //替换文本节点
    {
        document.Load(Server.MapPath("books.xml"));
        XmlNodeList nodelist=document.GetElementsByTagName("*");
        XmlElement element;
        for (int i = 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"));
    }


    private void RepalceAttrbute(XmlDocument document)      //替换属性节点
    {
        document.Load(Server.MapPath("books.xml"));
        XmlNodeList nodelist = document.GetElementsByTagName("*");
        XmlElement element;

        for (int i = 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"));
    }


    private void InsertElement(XmlDocument document)        //插入元素
    {
        document.Load(Server.MapPath("books.xml"));
        XmlNodeList nodelist = document.GetElementsByTagName("*");
        XmlElement element;
        XmlElement pageelement=document.CreateElement("page");
        pageelement.InnerText="350页";

        for (int i = 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"));
    }

    private void RemoveElement(XmlDocument document)        //删除元素
    {
        document.Load(Server.MapPath("books.xml"));
        XmlNodeList nodelist = document.GetElementsByTagName("*");
        XmlElement element;
        for (int i = 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"));
    }
}


--  作者:Qr
--  发布时间:6/23/2007 12:41:00 PM

--  XML DOM ASP.NET C# 添加 删除  插入 修改 节点
不错!


--  作者:mycatboys
--  发布时间:6/25/2007 10:33:00 PM

--  
好贴啊  收藏了

------------------------------------------------------------------------------
在baidu上找到这个好论坛,[url=http://www.118cy.net/host/]虚拟主机[/url]不错,论坛的[url=http://www.118cy.net/help/webHelp_sql_1011_0.htm]动态主机[/url]的也不错。努力发贴,发贴...呵呵


--  作者:davidwangwxw
--  发布时间:7/6/2007 11:42:00 PM

--  
可以使用XPath进行操作!应该会更好!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms