我有一个显示树结构的文本文件。空格数表示给定成员的级别。例如下面,用户组的成员或亚组谁可以拥有成员等儿子:从.NET中的文本文件构建XML树
MainGroup
Member1
Member2
Group1
Member11
Member12
Group12
Member21
Member22
Member3
对不起大家,我 第一次和第一个问题在这里所以是搞清楚整个事情的格式。
这是我到目前为止已经试过:(这是没有必要的,但我需要的数据表,以显示我的数据)
- 我读的文本文件导入数据表。
通过每行(有一列),我创建一个节点。我找到了空格的数量。如果它为零,我将属性添加到此节点并将其添加到doc。如果它有空格,我循环并继续向此节点添加子节点。这是事情不适合我的地方。
Sub ExportToEXML Dim datarow As DataRow Dim fileName As String = "" Dim level As Integer = 0 Dim counter As Integer = 0 Dim doc As XmlDocument = New XmlDocument Dim docNode As XmlNode = doc.CreateXmlDeclaration("1.0", "UTF-8", Nothing) doc.AppendChild(docNode) Dim ComponentsNode As XmlNode = doc.CreateElement("Components") doc.AppendChild(ComponentsNode) Dim firstrow As DataRow For i As Integer = 0 To dt.Rows.Count - 1 firstrow = dt.Rows.Item(i) fileName = firstrow(0) level = CountSpacesBeforeFirstChar(fileName) Dim partNode As XmlNode = doc.CreateElement("Component") Dim att As XmlAttribute = doc.CreateAttribute("Name") att.Value = fileName partNode.Attributes.Append(att) GetChildNodes(partNode, i, doc, 0, level, dt) ComponentsNode.AppendChild(partNode) Next doc.Save("D:\TestXML.xml") End Sub Private Sub GetChildNodes(ByRef xNode As XmlNode, ByRef rowInd As Integer, ByRef xDoc As XmlDocument, level As Integer, table As DataTable) Dim lev As Integer Dim fileName As String Dim dr As DataRow For i As Integer = rowInd + 1 To table.Rows.Count - 1 dr = table.Rows.Item(i) fileName = dr(0) lev = CountSpacesBeforeFirstChar(fileName) If lev = 0 Then 'has no children Exit Sub End If If lev > level Then Dim partNode As XmlNode = xDoc.CreateElement("Component") Dim att As XmlAttribute = xDoc.CreateAttribute("Name") att.Value = fileName partNode.Attributes.Append(att) xNode.AppendChild(partNode) GetChildNodes(xNode, i, xDoc, lev, table) End If Next End Sub
您尝试了什么?你在哪里遇到问题?发布您的代码。 – qqbenq
你能解释一下“空格数表示给定成员的级别”是什么意思吗?它是一个固定宽度的文本文件吗? – wooters