zoukankan      html  css  js  c++  java
  • XmlTextWriter的使用日记

    使用XmlTextWriter生成如下一个xml:

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <Pkboy kind="site">
      <command name="price" object="game" password="asdfasdf">
        <game name="魔兽世界">
          <server name="魔兽服务器一号">
            <item name="金币" kind="gold" quantity="12" gross="0.5005" maxdollar="99" mindollar="88" rate="6.88" />
          </server>
        </game>
      </command>
    </Pkboy>

    使用的代码:

    public static string GeneratePriceXml(PriceStruct ps, Encoding encode)
     {
                string xml = string.Empty;

                using (MemoryStream ms = new MemoryStream())
                {
                    using (XmlTextWriter xtw = new XmlTextWriter(ms, encode))
                    {
                        xtw.Formatting = Formatting.Indented;
                        //xtw.Indentation = 2;

                        xtw.WriteStartDocument(true);

                        //Pkboy node
                        xtw.WriteStartElement("Pkboy");
                        xtw.WriteAttributeString("kind", "site");
                        //command node
                        xtw.WriteStartElement("command");
                        xtw.WriteAttributeString("name", "price");
                        xtw.WriteAttributeString("object", "game");
                        xtw.WriteAttributeString("password", ps.password);

                        //game node
                        xtw.WriteStartElement("game");
                        xtw.WriteAttributeString("name", ps.gameName);

                        // server node
                        xtw.WriteStartElement("server");
                        xtw.WriteAttributeString("name", ps.serverName);

                        // item node
                        xtw.WriteStartElement("item");
                        xtw.WriteAttributeString("name", ps.itemName);
                        xtw.WriteAttributeString("kind", ps.itemKind);
                        xtw.WriteAttributeString("quantity", ps.quantity.ToString());
                        xtw.WriteAttributeString("gross", ps.gross.ToString());
                        xtw.WriteAttributeString("maxdollar", ps.maxDollar.ToString());
                        xtw.WriteAttributeString("mindollar", ps.minDollar.ToString());
                        xtw.WriteAttributeString("rate", ps.rate.ToString());

                        // colse item node
                        xtw.WriteEndElement();
                        // close server node
                        xtw.WriteEndElement();
                        // close game node
                        xtw.WriteEndElement();
                        // close command node
                        xtw.WriteEndElement();
                        // close pkboy node
                        xtw.WriteEndElement();
                        // close document
                        xtw.WriteEndDocument();

                        xtw.Flush();
                        xml = encode.GetString(ms.GetBuffer(), 0, (int)ms.Length);
                    }               
                }
                return xml;
     }

    产生xml 如下格式:

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <Pkboy kind="result">
      <result success="false">
        <data>this is result data</data>
        <error kind="DatabaseError">
          <message>数据库链接失败</message>
        </error>
      </result>
    </Pkboy>

    采用代码:

    public static string GenerateResultXml(ResultStruct rs, Encoding encode)
     {
                string xml = string.Empty;

                using (MemoryStream ms = new MemoryStream())
                {
                    using (XmlTextWriter xtw = new XmlTextWriter(ms, encode))
                    {
                        xtw.Formatting = Formatting.Indented;

                        xtw.WriteStartDocument(true);

                        //Pkboy node
                        xtw.WriteStartElement("Pkboy");
                        xtw.WriteAttributeString("kind", "result");

                        //result node                    
                        xtw.WriteStartElement("result");
                        if (rs.success)
                        {
                            xtw.WriteAttributeString("success", "true");
                        }
                        else
                        {
                            xtw.WriteAttributeString("success", "false");
                        }

                        //data node
                        xtw.WriteStartElement("data");
                        xtw.WriteValue(rs.data);
                        xtw.WriteEndElement();

                        // error node
                        xtw.WriteStartElement("error");
                        xtw.WriteAttributeString("kind", Enum.GetName(typeof(ErrorKind), rs.errorKind));

                        // message node
                        xtw.WriteStartElement("message");
                        xtw.WriteValue(rs.errorMessage);
                        xtw.WriteEndElement();

                        // close error node
                        xtw.WriteEndElement();

                        // close result node
                        xtw.WriteEndElement();
                        
                        // close document
                        xtw.WriteEndDocument();

                        xtw.Flush();
                        xml = encode.GetString(ms.GetBuffer(), 0, (int)ms.Length);
                    }
                }
                return xml;
            }

  • 相关阅读:
    css盒子模型 ( 基本针对兼容性问题有点帮助 )
    11.5 Array 数组
    11.5笔记 数组去重
    11.5笔记 函数
    11..2笔记 对象
    11.1笔记
    10.31笔记
    10.31笔记 作用域链
    10.15笔记 js
    10.8补
  • 原文地址:https://www.cnblogs.com/worldreason/p/1256258.html
Copyright © 2011-2022 走看看