我写了一个这样的程序
留下你的电子邮件
发给你
别忘给分
================================================================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    [自解压]

解决方案 »

  1.   

    感谢您使用微软产品。在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))。
      

  2.   

    wl_95421(王磊),谢谢
    不好意思,刚才没有上网,还在吗?
    我得email
    [email protected]
      

  3.   

    谢谢acptvb(微软全球技术中心 VB技术支持)
        王磊
    解决后一定加分!!
      

  4.   

    但如果不知道xml文件的“层”有多深,该怎么办呢?
      

  5.   

    感谢您使用微软产品。如果不知道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))。
      

  6.   

    谢谢acptvb(微软全球技术中心 VB技术支持)
        王磊
    我的xml文件的内容是:
    <parent>
    Mike
    <son>
    rambler
    </son>
    <daughter>
    Liyna
    </daughter>
    </parent>
    也就是一个父节点不但有自己的子元素,而且还有自己的content
    我应该怎样用treeview把这个关系表达清楚,谢谢
    先把分加上了
      

  7.   

    我是这样表示的
    用树进行表示的时候
    如果有Content
    就将Content的值作为单一子结点
    如果是子元素的话
    也作为子结点
    不过它也有自己的子结点
    而Content就没有了