需要使用StringReader、XPathDocument 、XPathNavigator 、XPathNodeIterator 这四个类
首先要将字符串string类型转化为流StringReader类型
然后通过StringReader创建XPathDocument
有了XPathDocument 以后,创建导航XPathNavigator
XPathDocument.CreateNavigator() 方法可以创建导航
通过导航XPathDocument创建节点集 XPathNodeIterator用于读取数据
XPathDocument.Select() 方法可以创建节点集XPathNodeIterator
string s = "<point><x>5</x><y>6</y></point>";//一个Xml格式的字符串
StringReader txtReader = new StringReader(s);//将字符串转化为流
XPathDocument xPath = new XPathDocument(txtReader);//通过流创建只读的Xml类
XPathNavigator nav = xPath.CreateNavigator();//创建导航
XPathNodeIterator iter = nav.Select("/point");//创建节点
while(iter.MoveNext())//遍历当前节点的所有子节点
{
XPathNodeIterator newIter = iter.Current.SelectChildren(XPathNodeType.Element);//创建子节点的节点
while(newIter.MoveNext())//遍历子节点的所有节点
{
XPathNodeIterator leafIter = newIter.Current.SelectChildren(XPathNodeType.Element);//创建当前节点的子节点
if (leafIter.Count == 0)//如果当前节点无子节点
{
lstBoxMessage.Items.Add(newIter.Current.Name + ", " + newIter.Current.Value);
}
else//当前节点有子节点
{
if (leafIter.MoveNext())//读取当前子节点的子节点
{
lstBoxMessage.Items.Add(newIter.Current.Name + ", " + leafIter.Current.OuterXml);
}
}
}
}
}
本文介绍如何使用StringReader、XPathDocument等类将XML格式的字符串解析为可操作的数据结构。通过实例演示了创建流、XPathDocument及导航器的过程,并展示了如何遍历节点获取所需数据。
348

被折叠的 条评论
为什么被折叠?



