我一直在使用 Linq to XML 和通过 foreach 循环解析 XML 解析器。
该程序可以运行,但是速度很慢,因为我有 2 个根,里面有很多元素,并且这两个根的元素可以相关。(文件不大,从 1Mb 到 5Mb)。
所以,澄清一下,我在 .xml 文件中有根<Datas>
。<Symbols>
里面的元素,通过每个子元素与元素<Symbols>
相关,如下:<Datas>
<Symbol>
<Type>
<Datas>
<Data>
<Name>**SymbolType_1**</Name> // (As you can see, <Name> = <Type> of the <Symbol>)
<Type>DataType1</Type>
<Subitem>
<Name>SubitemName1</Name>
<Type>SubitemType1</Type>
</Subitem>
<Subitem>
<Name>SubitemName1</Name>
<Type>SubitemType1</Type>
</Subitem>
</Data>
<Data>
<Name>**SymbolType_2**</Name>
<Subitem>
<Name>SubitemName1</Name>
<Type>SubitemType1</Type>
</Subitem>
<Subitem>
<Name>SubitemName1</Name>
<Type>SubitemType1</Type>
</Subitem>
</Data>
[...]
</Datas>
<Symbols>
<Symbol>
<Name>SymbolName_1</Name>
<Type>**SymbolType_1**</Type>
</Symbol>
<Symbol>
<Name>SymbolName_1</Name>
<Type>**SymbolType_1**</Type>
</Symbol>
[...]
</Symbols>
因此,也有可能一些<Subitem>
<Type>
连接到另一个<Data>
,创建一个由 10 个元素组成的结构。
我现在要做的是使用foreach
循环获取 each<Symbol>
并应用方法来查看 each<Data>
及其各自的<Subitem>
子级。
由于我是从 C# 开始的,所以我想知道将 all 和两个或三个不同的文件存储在列表中而不是文件中是否是<Symbol>
一个好主意<Data>
。<Subitem>
<List>
<Symbols>
此外,拆分“区域”并使用多个 foreach 循环同时负责解析每个区域是否明智(并且可能) ?
最后,我想知道是否可以存储 each 的位置<Data>
,所以我不需要从 root 开始解析<Datas>
。
非常感谢。