【问题标题】:Populate treeview using only specific XML nodes仅使用特定的 XML 节点填充树视图
【发布时间】:2015-06-08 13:53:58
【问题描述】:

我知道如何使用 XML 节点填充树视图,但是我不确定如何使用仅在 XML 文件的某个父节点下找到的节点来填充树视图..

示例:

我希望树视图仅显示节点 TreeViewItems 下列出的节点...而忽略...

<MyXmlFile>

<AllOtherStuff>
              <bla1>blabla<Bla1>
              <bla2>blablabla<Bla2>
              <bla3>blablablabla<Bla3>
</AllOtherStuff>

<TreeviewItems>
              <item1>DWG file</item1>
              <item2>DOC file</item2>
              <item3>PDF file</item3>
</TreeviewItems>
</MyXmlFile>

以下是我使用 XML 文件的全部内容填充树视图的代码...

    Dim xmldoc As New XmlDataDocument()
    Dim xmlnode As XmlNode
    Dim fs As New FileStream("tree.xml", FileMode.Open, FileAccess.Read)
    xmldoc.Load(fs)
    xmlnode = xmldoc.ChildNodes(1)
    TreeView1.Nodes.Clear()
    TreeView1.Nodes.Add(New TreeNode(xmldoc.DocumentElement.Name))
    Dim tNode As TreeNode
    tNode = TreeView1.Nodes(0)
    AddNode(xmlnode, tNode)

编辑:

Private Sub AddNode(ByVal inXmlNode As XmlNode, ByVal inTreeNode As TreeNode)
    Dim xNode As XmlNode
    Dim tNode As TreeNode
    Dim nodeList As XmlNodeList
    Dim i As Integer
    If inXmlNode.HasChildNodes Then
        nodeList = inXmlNode.ChildNodes
        For i = 0 To nodeList.Count - 1
            xNode = inXmlNode.ChildNodes(i)
            inTreeNode.Nodes.Add(New TreeNode(xNode.Name))
            tNode = inTreeNode.Nodes(i)
            AddNode(xNode, tNode)
        Next
    Else
        inTreeNode.Text = inXmlNode.InnerText.ToString
    End If
End Sub

【问题讨论】:

  • 你能扩展 AddNode() - 我想看看你实际上是如何将 XML 添加到树视图的

标签: xml vb.net treeview


【解决方案1】:

类似

xmldoc.DocumentElement.SelectSingleNode("TreeviewItems") 会给你这个节点,然后对它的孩子做一个 foreach。

【讨论】:

    猜你喜欢
    • 2014-08-13
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2015-08-27
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多