XML文档读取问题
void print(XmlNode node)
{
switch(node.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine( " <{0}> ",node.Name.ToString());
break;
case XmlNodeType.Text:
Console.WriteLine( "{0} ",node.Value.ToString());
break;
}
}
void treeprint(XmlNode node)
{
print(node);
if(node.HasChildNode)
{
treeprint(node.FirstChild);
print(node);
}
while(node.NextSibling!=null)
{
node=node.NextSibling;
treeprint(node);
}
}
//------------------
用上面的函数读取XML文档树的时候,为什么文档的节点超过3个,就出现问题呢?
------解决方案--------------------HasChildNode
------->
HasChildNodes
你的代码没啥问题
------解决方案--------------------没问题啊~
------解决方案--------------------帮顶了!
------解决方案--------------------递归有错误,改成下面这样就行了。
void print(XmlNode node)
{
switch (node.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine( " <{0}> ", node.Name.ToString());
break;
case XmlNodeType.Text:
Console.WriteLine( "{0} ", node.Value.ToString());
break;
}
}
void treeprint(XmlNode node)
{
print(node);
if (node.HasChildNode)
{
node = node.FirstChild;
treeprint(node);
}
while (node.NextSibling != null)
{
node = node.NextSibling;
treeprint(node);
}
}
------解决方案--------------------protected void treeprint(XmlNode node)
{
print(node);
if (node.HasChildNodes)
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
treeprint(node.ChildNodes[i]);
}
print(node);
}
//while (node.NextSibling != null)
//{
// node = node.NextSibling;
// treeprint(node);
//}
}
把treeprint这个函数改成上面的,测试通过,楼主试试
------解决方案--------------------