以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  请指点一下新手这个替换方法对不对(DOM)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=48852)


--  作者:private_man
--  发布时间:6/22/2007 9:45:00 AM

--  请指点一下新手这个替换方法对不对(DOM)
我想把元素<author>里面的文本节点替换掉。但是写了个RepalceElement()的 方法显示没有替换成功。请各位多多指教。      

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

    private void AddElement(XmlDocument document)
    {
        XmlElement bookselement = document.CreateElement("books");

        XmlElement bkelement = document.CreateElement("book");
        XmlElement nameelement = document.CreateElement("name");
        nameelement.SetAttribute("id", "1");
        nameelement.InnerText = "C#";
        bkelement.AppendChild(nameelement);

        XmlElement authorelement = document.CreateElement("author");
        authorelement.InnerText = "Microsoft";
        bkelement.AppendChild(authorelement);

        XmlElement priceelement = document.CreateElement("price");
        priceelement.InnerText = "100";
        bkelement.AppendChild(priceelement);

        bookselement.AppendChild(bkelement);
        document.AppendChild(bookselement);

        document.Save(Server.MapPath("books.xml"));
    }

    private void InsertElement(XmlDocument document)
    {
        document.Load(Server.MapPath("books.xml"));
        XmlNode node = document.SelectSingleNode("books");

        XmlElement bkelement = document.CreateElement("book");
        XmlElement nameelement = document.CreateElement("name");

        nameelement.SetAttribute("id", "2");
        nameelement.InnerText = "Java";
        bkelement.AppendChild(nameelement);

        XmlElement authorelement = document.CreateElement("author");
        authorelement.InnerText = "SUN";
        bkelement.AppendChild(authorelement);

        XmlElement priceelement = document.CreateElement("price");
        priceelement.InnerText = "130";
        bkelement.AppendChild(priceelement);

        node.AppendChild(bkelement);

        //Response.Write("node 的 name= " + node.Name);
        //Response.Write("<br>");
        //Response.Write("priceelement 的 name= " + priceelement.Name);
       
        document.Save(Server.MapPath("books.xml"));


    }

    private void RepalceElement(XmlDocument document)
    {
        document.Load(Server.MapPath("books.xml"));

        XmlNodeList nodelist = document.SelectSingleNode("books").ChildNodes;
        XmlElement element;

        foreach (XmlNode node in nodelist)
        {
            element = (XmlElement)node;
            if (element.Name == "author")
            {
                element.InnerText = "波兰";            //这里就没有替换成功。
                break;
            }
            break;
        }

        document.Save(Server.MapPath("books.xml"));
    }
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
58.594ms