• XmlTextReader需要注意的问题


    对于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>

    使用XmlTextReader进行读取:

                byte[] buffer = Encoding.UTF8.GetBytes(xml);
                using (stream = new MemoryStream(buffer))
                {
                    using (XmlTextReader str = new XmlTextReader(stream))
                    {
                        str.Read();

                        str.Read();
                        str.Read();
                        Assert.AreEqual("Pkboy", str.Name);
                        str.Read();
                        str.Read();
                        Assert.AreEqual("command", str.Name);
                        str.Read();
                        str.Read();
                        Assert.AreEqual("game", str.Name);
                        str.MoveToFirstAttribute();
                        Assert.AreEqual("魔兽世界", str.Value);
                        str.Read();
                        str.Read();
                        str.MoveToFirstAttribute();
                        Assert.AreEqual("魔兽服务器一号", str.Value);
                    }
                }

    上面的测试是正常的,也就是说3次Read()以后到了Pkboy节点。为什么呢?

    经过追踪,第一次Read()以后,到了

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>,显示节点的名称是xml,也就是把<>内的东西当成

    一个节点。 而version等都是属性,要是取这些属性,必须用MoveToFirstAttribute类似的一组方法。这里不取,再次Read(),

    然后就到了文档的"\r\n",也就是第二个Read()包含的东西是"\r\n",如果存在回车换行,那么就会被当成一个节点Read()一次。

    如果不包含"\r\n",那么就直接可以到达下一个节点。

    所以,这里因为包含了回车换行,所以,3次以后到达第一个元素Pkboy。

  • 相关阅读:
    python之 网络编程、异常处理、面向对象
    python sys模块、mongodb操作、接口开发、程序分目录、压缩解压文件
    linux安装redis完整步骤
    python之:map、filter、random、datatime,写日志,发邮件,操作mysql、redis,MD5加密,写excel
    函数、模块
    python json处理、集合操作、函数定义、文件读写
    python字典、list、字符串常见处理方法、元组、文件读写
    学习笔记
    接口测试笔记
    【04】Cent OS 7 中部署JDK + Tomcat 环境
  • 原文地址:https://www.cnblogs.com/worldreason/p/1256290.html
Copyright © 2020-2023  润新知