清泛IT社区

标题: C# 如何读取解析结构不完整的XML内容? [打印本页]

作者: 清泛网    时间: 2015-11-09 19:31
标题: C# 如何读取解析结构不完整的XML内容?
一般情况下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);
复制代码
(, 下载次数: 2525)
然后添加节点提取、过滤的逻辑就OK了。



作者: zqp2013    时间: 2015-11-30 16:13
非完整的xml,实际当作文本处理了,soga




欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3