zoukankan      html  css  js  c++  java
  • C# 操作XML

    -、XMLTextWriter用法

    代码
    using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
    {
    //System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(stream, null);
    System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(Server.MapPath("userInfo.xml"), System.Text.Encoding.UTF8);

    writer.Formatting
    = System.Xml.Formatting.Indented;
    writer.WriteStartDocument(
    true);

    writer.WriteStartElement(
    "PP");
    writer.WriteStartElement(
    "X");
    writer.WriteString(
    "1");
    writer.WriteEndElement();
    writer.WriteStartElement(
    "Y");
    writer.WriteString(
    "1");
    writer.WriteEndElement();
    writer.WriteStartElement(
    "Name");
    writer.WriteString(
    "fan");
    writer.WriteEndElement();
    writer.WriteEndElement();
    writer.Flush();
    writer.Close();
    }


    二、XMLDocument用法

    代码
    XmlDocument xmldoc;
    XmlNode xmlnode;
    xmldoc
    = new XmlDocument();

    xmlnode
    = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
    xmldoc.AppendChild(xmlnode);
    //加入XML的声明段落,<?xml version="1.0" encoding="utf-8"?>
    //xmlnode = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
    //xmldoc.AppendChild(xmlnode);
    //加入一个根元素
    xmldoc.AppendChild(xmldoc.CreateElement("", "Menu", ""));

    foreach (ComponentArt.Web.UI.MenuItem mi in Menu2.Items)
    {
    if (mi.Enabled && mi.Visible)
    {
    XmlElement xmlelem;
    xmlelem
    = xmldoc.CreateElement("Item");
    xmlelem.SetAttribute(
    "title", string.Format("{0}", mi.Text));

    if (string.IsNullOrEmpty(mi.NavigateUrl))
    xmlelem.SetAttribute(
    "url", string.Format("{0}", mi.Items[0].NavigateUrl));
    else
    xmlelem.SetAttribute(
    "url", string.Format("{0}", mi.NavigateUrl));

    xmldoc.ChildNodes.Item(
    1).AppendChild(xmlelem);
    }
    }

    xmldoc.Save(Request.PhysicalApplicationPath
    + @"data.xml");
    string xmlContent= xmldoc.OuterXml;

    另外读取的话,用XMLTextReader很方式,也是只进读取,性能据说比较OK!
        三、XMLTextReader用法

    代码
    string targer;
    XmlDocument xmldoc
    = new XmlDocument();
    xmldoc.Load(
    "userInfo.xml");
    byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(xmldoc.OuterXml);
    using (System.IO.MemoryStream stream = new System.IO.MemoryStream(bytes))
    {
    using (XmlTextReader reader = new XmlTextReader(stream))
    {
    while (reader.Read())
    {
    if (!reader.IsEmptyElement && reader.NodeType == XmlNodeType.Element)
    {
    switch (reader.LocalName)
    {
    case "X":
    targer
    = reader.ReadString();
    break;
    }
    }
    }
    }
    }


    另外,XML的一个应用是序列化,要用到把字符串转化成byte数组,方法:
       byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(XmlContent); 
    相对的,把byte数组转化为字符串的方法则为:
     string XmlContent = System.Text.UTFEncoding.UTF8.GetString(bytes);
    这样方便了吧,把想存的东东转化为byte数组,然后压缩一下,网络传输的话也应该很OK了吧

  • 相关阅读:
    在Mac电脑编译c51程序
    Unix程序员的Win10二三事
    macOS webview编程
    Day 6 文件属性与命令执行流程
    Day 5文件管理—三剑客的了解
    Day4 文件管理-常用命令
    Day3 目录结构及文件管理
    Day 2 Bash shell 认识
    Day 1 linux系统的发展史与虚拟机的安装过程
    【Offer】[66] 【构建乘积数组】
  • 原文地址:https://www.cnblogs.com/zhuwenlubin/p/1877849.html
Copyright © 2011-2022 走看看