【发布时间】:2016-02-13 18:06:23
【问题描述】:
我有一些像下面这样的大尺寸 xml 文件 (>500mb)。
<?xml version="1.0" encoding="UTF-8"?>
<ChangeRequests Count="" ID="" Update="">
<Requests>
<Request Type="Insert" Method="Customer">
<Country>xXx</Country>
<Window>10</Window>
<Door>11</Door>
<Id>88747</Id>
<Name>Lore Ipsum</Name>
<FirstName />
<OwnerFirstName />
<OwnerName />
<OwnerBirthday />
<CompanyName1 />
<CompanyName1 />
</Request>
<Request Type="Insert" Method="Customer">
<Country>xXx</Country>
<Window>10</Window>
<Door>11</Door>
<Id>444544</Id>
<Name>Lazy Dog</Name>
<FirstName />
<OwnerFirstName />
<OwnerName />
<OwnerBirthday />
<CompanyName1 />
<CompanyName1 />
</Request>
<Request Type="Insert" Method="Customer">
<Country>xXx</Country>
<Window>10</Window>
<Door>11</Door>
<Id>444544</Id>
<Name>Lazy Dog</Name>
<FirstName />
<OwnerFirstName />
<OwnerName />
<OwnerBirthday />
<CompanyName1 />
<CompanyName1 />
</Request>
</Requests>
</ChangeRequests>
我想读取第一个请求节点并将其所有子节点添加到组合框,而无需读取 xml 的其他部分。 我想出的代码是下面的代码,但它会遍历所有代码,并且会在组合框中添加很多重复值。
Dim xml_doc As New XmlDocument
Dim xmlReader As New XmlTextReader(TextBox1.Text)
Dim arr As New ArrayList
xmlReader.MoveToContent()
xmlReader.ReadToFollowing("Request")
While xmlReader.Read()
Select Case xmlReader.NodeType
Case XmlNodeType.Element
ComboBox1.Items.Add("<" + xmlReader.Name & ">")
Exit Select
End Select
End While
【问题讨论】: