有关把一个xml文件的节点读出,以treeview显示其tree形结构的问题,

high007 2002-04-29 09:57:33
我的xml文件的内容是:
<parent>
<son>
rambler
</son>
<daughter>
Liyna
</daughter>
</parent>

想用treeview显示为:
--+parent
-son
-daughter
好像用xmlnodereader类,请问如何实现
...全文
75 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
high007 2002-05-02
  • 打赏
  • 举报
回复
ok
high007 2002-05-02
  • 打赏
  • 举报
回复
分加上了,谢谢
high007 2002-05-02
  • 打赏
  • 举报
回复
谢谢帮忙
问题解决,分加上
wl_95421 2002-05-02
  • 打赏
  • 举报
回复
我是这样表示的
用树进行表示的时候
如果有Content
就将Content的值作为单一子结点
如果是子元素的话
也作为子结点
不过它也有自己的子结点
而Content就没有了
high007 2002-05-01
  • 打赏
  • 举报
回复
分加上,但希望继续关注这个小问题
high007 2002-05-01
  • 打赏
  • 举报
回复
谢谢acptvb(微软全球技术中心 VB技术支持)
王磊
我的xml文件的内容是:
<parent>
Mike
<son>
rambler
</son>
<daughter>
Liyna
</daughter>
</parent>
也就是一个父节点不但有自己的子元素,而且还有自己的content
我应该怎样用treeview把这个关系表达清楚,谢谢
先把分加上了
wl_95421 2002-04-30
  • 打赏
  • 举报
回复
我写了一个这样的程序
留下你的电子邮件
发给你
别忘给分
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

acptvb 2002-04-30
  • 打赏
  • 举报
回复
感谢您使用微软产品。

如果不知道xml文件的“层”有多深,您可以通过如下的一个比较通用的递归程序,来解决问题:
下面提供一段示例程序,供您参考:
private void btnTreeView_Click(object sender, System.EventArgs e)
{
try
{
XmlDocument dom = new XmlDocument();
dom.Load(“c:\\homeworks\\test.xml”);
treeView1.Nodes.Clear();
treeView1.Nodes.Add(new TreeNode(dom.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = treeView1.Nodes[0];
// 调用AddNode方法,具体见下面代码
AddNode(dom.DocumentElement, tNode);
treeView1.ExpandAll();
}
catch(XmlException xmlEx)
{
MessageBox.Show(xmlEx.Message);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i;
// 检查是否存在子节点
if (inXmlNode.HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for(i = 0; i<=nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);// 递规调用
}
}
else
{
// 显示来自XmlNode的值
inTreeNode.Text = (inXmlNode.OuterXml).Trim();
}
}


关于XmlDocument的更详细信息,请参考MSDN:
ms-help://MS.VSCC/MS.MSDNVS/cpref/html/frlrfSystemXmlXmlDocumentMethodsTopic.htm

— 微软全球技术中心 VB支持中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
high007 2002-04-30
  • 打赏
  • 举报
回复
但如果不知道xml文件的“层”有多深,该怎么办呢?
high007 2002-04-30
  • 打赏
  • 举报
回复
谢谢acptvb(微软全球技术中心 VB技术支持)
王磊
解决后一定加分!!
high007 2002-04-30
  • 打赏
  • 举报
回复
wl_95421(王磊),谢谢
不好意思,刚才没有上网,还在吗?
我得email
zhwnuaa200249101@sina.com
acptvb 2002-04-30
  • 打赏
  • 举报
回复
感谢您使用微软产品。

在C#中,可以通过引入命名空间using System.Xml;,然后实例化一个XmlDocument类,Load指定的XML文档,对其节点进行相应的遍历即可。如下提供一段示例代码,供您参考:
其中test.xml文档,完全安装您提供的上述格式定义。
private void btnXML_Click(object sender, System.EventArgs e)
{
try
{
treeView1.Nodes.Clear();
XmlDocument doc = new XmlDocument();
doc.Load("c:\\homeworks\\test.xml");

TreeNode tParent = null;
TreeNode tValue = null;
TreeNode eName = null;

XmlNodeList nList;
XmlNodeList nListChild;

nList=doc.GetElementsByTagName("parent");
tParent = new TreeNode("parent");
for( int i =0;i<nList.Count;i++)
{
XmlElement element_main = (XmlElement)nList.Item(i);
nListChild = element_main.ChildNodes ;
for( int j =0;j<nListChild.Count;j++)
{
XmlElement child_element = (XmlElement)nListChild.Item(j);
eName = new TreeNode(child_element.Name);
tValue = new TreeNode(child_element.InnerText);
eName.Nodes.Add(tValue);
tParent.Nodes.Add(eName);
}
treeView1.Nodes.Add(tParent);
}
treeView1.ExpandAll();
}
catch(Exception exp)
{
MessageBox.Show("Error...in displaying treeview"+exp.Message);
}
}

关于XmlDocument的更详细信息,请参考MSDN:
ms-help://MS.VSCC/MS.MSDNVS/cpref/html/frlrfSystemXmlXmlDocumentMethodsTopic.htm

— 微软全球技术中心 VB支持中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
high007 2002-04-29
  • 打赏
  • 举报
回复
没人知道吗,
flywlsj 2002-04-29
  • 打赏
  • 举报
回复
c#+xml+xsl
high007 2002-04-29
  • 打赏
  • 举报
回复
帮帮忙阿!
一定加分!!

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧