我有一个 XML 文件,其中数据分散。我必须获取驻留在 XML 标记下的所有单元格值、<managedObject class="JTS"分散在 XML 标记上的依赖站点信息以及分散在 XML 标记上的<managedObject class="CCF"其他依赖电源信息<managedObject class="POC"。我习惯于进行XmlReader.ReadFrom小部分和处理,但现在的问题是每个单元格、站点和电源信息的 XML 都很大,为此我每次都读取整个大 XML 文件,这是错误的逻辑并且需要很多的时间。有什么方法可以将所有单元格(比如 5000 个单元格)加载到类和相应的站点中,将单元格所需的任何信息提供给类,然后使用foreach迭代处理这些类。我使用的代码和 XML 片段如下
<managedObject class="JTS" version="BSC17" distName="PLMN-PLMN/BSC-404500">
<p name="name">VM_25261_G1_A</p>
<p name="cellBarQualify">0</p>
<p name="cellBarred">0</p>
<p name="cId">25261</p>
<p name="hoppingMode">1</p>
<p name="hoppingSequenceNumber1">54</p>
<managedObject class="CCF" version="BSC17" distName="PLMN-PLMN/BSC-404500">
<p name="name">ET_AR_G_0267_GHABATGHAYATI</p>
<p name="SBTSId">10267</p>
<p name="abisInterfaceConnectionType">2</p>
<p name="adminState">1</p>
<managedObject class="POC" version="BSC17" distName="PLMN-PLMN/BSC-404500">
<p name="alpha">0</p>
<p name="bepPeriod">10</p>
<p name="bsTxPwrMax">0</p>
<p name="bsTxPwrMax1x00">0</p>
和代码
using (XmlReader xr = XmlReader.Create(path, settings))
{
xr.MoveToContent();
while (xr.Read())
{
while (xr.NodeType == XmlNodeType.Element && xr.LocalName == "managedObject" && xr.GetAttribute("class") == "JTS")
{
dist_name = xr.GetAttribute("distName");
dist_name_ori = dist_name;
XElement pin = (XElement)XNode.ReadFrom(xr);
cell_name = GetValueForNokia(pin, "name");
DataTable dtSiteDetails = GetSiteDetails2G(path, dist_name, settings);
DataTable dtBasePowrDetails = GetBasePowrDetails2G(path, dist_name_ori, settings);
湖上湖
相关分类