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

清泛原创
一般情况下C#解析XML采用如下方式(本地XML、远程url都适用):
public XmlDocument GetXMLFromUrl(string strUrl)  
{
       XmlDocument doc = new XmlDocument();
       doc.Load(strUrl);
       return doc; 
}
但是要求XML格式完整(浏览器能够正常打开),不过有时我们可能需要解析一些不规则的节点,这些节点不完全符合XML规则(例如没有唯一的根节点等,直接使用XmlDocument的Load方法会发生异常)。
使用XmlTextReader类似读文本的形式可以解析XML片段,如下:
XmlTextReader tr = new XmlTextReader(@"<node>
									<a>aa</a>
									<b>bb</b>
								  </node>
								  <node>
									<a>aaa</a>
									<b>bbb</b>
									<c>ccc</c>
								  </node>", XmlNodeType.Element, null);

while(tr.Read())
	Console.WriteLine("NodeType: {0} \t NodeName: {1}", tr.NodeType, tr.Name);
 
然后添加节点提取、过滤的逻辑就OK了。

C# 解析 不完整XML

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部