清泛IT社区App Inventor 2 中文社区

搜索

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.72

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通会员送SVIPApp Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 1093|回复: 1
打印 上一主题 下一主题

C# 如何读取解析结构不完整的XML内容?

  • TA的每日心情
    开心
    2024-02-17 18:16
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    546

    主题

    715

    帖子

    1万

    积分

    管理员

    这里没有广告...

    Rank: 9Rank: 9Rank: 9

    积分
    10709
    QQ
    跳转到指定楼层
    楼主
    发表于 2015-11-09 19:31:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    一般情况下C#解析XML采用如下方式(本地XML、远程url都适用):
    1. public XmlDocument GetXMLFromUrl(string strUrl)  
    2. {
    3.        XmlDocument doc = new XmlDocument();  
    4.        doc.Load(strUrl);  
    5.        return doc;  
    6. }  
    复制代码
    但是要求XML格式完整(浏览器能够正常打开),不过有时我们可能需要解析一些不规则的节点,这些节点不完全符合XML规则(例如没有唯一的根节点等,直接使用XmlDocument的Load方法会发生异常)。
    使用XmlTextReader类似读文本的形式可以解析XML片段,如下:
    1. XmlTextReader tr = new XmlTextReader(@"<node>
    2.                                                 <a>aa</a>
    3.                                                 <b>bb</b>
    4.                                               </node>
    5.                                               <node>
    6.                                                 <a>aaa</a>
    7.                                                 <b>bbb</b>
    8.                                                 <c>ccc</c>
    9.                                               </node>", XmlNodeType.Element, null);

    10.             while(tr.Read())
    11.                 Console.WriteLine("NodeType: {0} \t NodeName: {1}", tr.NodeType, tr.Name);
    复制代码

    然后添加节点提取、过滤的逻辑就OK了。


    清泛网 - 专注IT技能提升
  • TA的每日心情
    开心
    2024-03-14 20:36
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    70

    主题

    117

    帖子

    1420

    积分

    AppInventor2 SVIP会员

    积分
    1420
    沙发
    发表于 2015-11-30 16:13:08 | 只看该作者
    非完整的xml,实际当作文本处理了,soga
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-11-22 20:38 , Processed in 0.022768 second(s), 34 queries .