I have a large 7GB xml file and I insert a small portion here
<?xml version="1.0" encoding="UTF-8"?>
<bulkFile xmlns:un="utranNrm.xsd"
xmlns:es="Attributes.15.25.xsd"
xmlns:xn="generic.xsd" xmlns:gn="geran.xsd" xmlns="configData.xsd">
<fileHeader fileFormatVersion="32.615 V4.5" Name="Wmart"/>
<configData dnPrefix="Undefined">
<xn:SubNetwork id="M_ROOT">
<xn:VsDataContainer id="1">
<xn:attributes>
<xn:vsDataType>vsDataAreas</xn:vsDataType>
<xn:vsDataFormatVersion>SpecificAttributes</xn:vsDataFormatVersion>
<es:vsDataAreas/>
</xn:attributes>
<xn:VsDataContainer id="424_2_2">
<xn:attributes>
<xn:vsDataType>vsDataPlmn</xn:vsDataType>
<xn:vsDataFormatVersion>SpecificAttributes</xn:vsDataFormatVersion>
<es:vsDataPlmn>
<es:userLabel></es:userLabel>
<es:mcc>424</es:mcc>
<es:mnc>2</es:mnc>
<es:mncLength>2</es:mncLength>
<es:aliasPlmnIdentities>
<es:mcc>424</es:mcc>
<es:mnc>2</es:mnc>
<es:mncLength>2</es:mncLength>
</es:aliasPlmnIdentities>
</es:vsDataPlmn>
</xn:attributes>
<xn:VsDataContainer id="10">
<xn:attributes>
<xn:vsDataType>vsDataLocationArea</xn:vsDataType>
<xn:vsDataFormatVersion>SpecificAttributes</xn:vsDataFormatVersion>
<es:vsDataLocationArea>
<es:userLabel></es:userLabel>
<es:lac>10</es:lac>
<es:t3212>10</es:t3212>
<es:att>1</es:att>
</es:vsDataLocationArea>
</xn:attributes>
</xn:VsDataContainer>
</xn:VsDataContainer>
</xn:VsDataContainer>
<xn:SubNetwork id="G-Mum">
<xn:attributes>
<xn:userDefinedNetworkType>SiteSolutions</xn:userDefinedNetworkType>
<xn:userLabel>G-Mum</xn:userLabel>
</xn:attributes>
<xn:MeContext id="32509_I_East">
<xn:VsDataContainer id="23502_I_AAN_UAEU_Crescent_East">
<xn:attributes>
<xn:vsDataType>vsDataMeContext</xn:vsDataType>
<xn:vsDataFormatVersion>EricssonSpecificAttributes.15.25</xn:vsDataFormatVersion>
<es:vsDataMeContext>
<es:userLabel>23502_I_AAN_UAEU_Crescent_East</es:userLabel>
<es:ipAddress>10.235.20.10</es:ipAddress>
<es:neMIMversion>vF.1.108</es:neMIMversion>
<es:lostSynchronisation>SYNCHRONISED</es:lostSynchronisation>
<es:bcrLastChange>1474785017888</es:bcrLastChange>
<es:bctLastChange>1470699087457</es:bctLastChange>
<es:multiStandardRbs6k>false</es:multiStandardRbs6k>
<es:mixedModeRadio>false</es:mixedModeRadio>
<es:mirrorMIBversion>F.1.100.S.1.6</es:mirrorMIBversion>
<es:stnNodes></es:stnNodes>
</es:vsDataMeContext>
</xn:attributes>
</xn:VsDataContainer>
<xn:ManagedElement id="1">
<xn:attributes>
</xn:attributes>
<xn:VsDataContainer id="1">
<xn:attributes>
<xn:vsDataType>vsDataManagedElement</xn:vsDataType>
<xn:vsDataFormatVersion>Attributes.15.25.xsd</xn:vsDataFormatVersion>
<es:vsDataManagedElement>
<es:siteRef>SubNetwork=M_ROOT,Site=32509_I_East</es:siteRef>
<es:productType>Node</es:productType>
<es:productName>RBS6601L</es:productName>
<es:productNumber></es:productNumber>
<es:productRevision></es:productRevision>
<es:prodDesignation>0</es:prodDesignation>
</es:vsDataManagedElement>
</xn:attributes>
</xn:VsDataContainer>
.
.
<xn:VsDataContainer id="1">
<xn:attributes>
<xn:vsDataType>vsDataENodeBFunction</xn:vsDataType>
<xn:vsDataFormatVersion>Attributes.15.25.xsd</xn:vsDataFormatVersion>
<es:vsDataENodeBFunction>
<es:userLabel></es:userLabel>
<es:dscpLabel>24</es:dscpLabel>
<es:dnsLookupOnTai>1</es:dnsLookupOnTai>
<es:eNBId>32509</es:eNBId>
</es:vsDataENodeBFunction>
</xn:attributes>
<xn:VsDataContainer id="BC_3250_32509_L1_B">
<xn:attributes>
<xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
<es:earfcndl>1651</es:earfcndl>
<es:earfcnul>19651</es:earfcnul>
</xn:attributes>
</xn:VsDataContainer>
..
<xn:VsDataContainer id="BD_4250_32509_L1_B">
<xn:attributes>
<xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
<es:earfcndl>1651</es:earfcndl>
<es:earfcnul>19651</es:earfcnul>
</xn:attributes>
</xn:VsDataContainer>
<xn:VsDataContainer id="CC_3250_32509_L1_C">
<xn:attributes>
<xn:vsDataType>testranCellFDD</xn:vsDataType>
<es:earfcndl>165</es:earfcndl>
<es:earfcnul>19651</es:earfcnul>
</xn:attributes>
</xn:VsDataContainer>
</xn:VsDataContainer>
..
</xn:ManagedElement>
</xn:MeContext>
<xn:MeContext id="32509_I_west">
<xn:VsDataContainer id="32509_I_AAN_UAEU_Crescent_East">
<xn:attributes>
<xn:vsDataType>vsDataMeContext</xn:vsDataType>
<xn:vsDataFormatVersion>Attributes.15.25</xn:vsDataFormatVersion>
<es:vsDataMeContext>
<es:userLabel>32509_I_AAN_UAEU_Crescent_East</es:userLabel>
<es:ipAddress>10.235.20.10</es:ipAddress>
<es:neMIMversion>vF.1.108</es:neMIMversion>
<es:lostSynchronisation>SYNCHRONISED</es:lostSynchronisation>
<es:bcrLastChange>1474785017888</es:bcrLastChange>
<es:bctLastChange>1470699087457</es:bctLastChange>
<es:multiStandardRbs6k>false</es:multiStandardRbs6k>
<es:mixedModeRadio>false</es:mixedModeRadio>
<es:mirrorMIBversion>F.1.100.S.1.6</es:mirrorMIBversion>
<es:stnNodes></es:stnNodes>
</es:vsDataMeContext>
</xn:attributes>
</xn:VsDataContainer>
<xn:ManagedElement id="1">
<xn:attributes>
</xn:attributes>
<xn:VsDataContainer id="1">
<xn:attributes>
<xn:vsDataType>vsDataManagedElement</xn:vsDataType>
<xn:vsDataFormatVersion>Attributes.15.25.xsd</xn:vsDataFormatVersion>
<es:vsDataManagedElement>
<es:siteRef>SubNetwork=M_ROOT,Site=32509_I_East</es:siteRef>
<es:productType>Node</es:productType>
<es:productName>RBS6601L</es:productName>
<es:productNumber></es:productNumber>
<es:productRevision></es:productRevision>
<es:prodDesignation>0</es:prodDesignation>
</es:vsDataManagedElement>
</xn:attributes>
</xn:VsDataContainer>
.
.
<xn:VsDataContainer id="1">
<xn:attributes>
<xn:vsDataType>vsDataENodeBFunction</xn:vsDataType>
<xn:vsDataFormatVersion>Attributes.15.25.xsd</xn:vsDataFormatVersion>
<es:vsDataENodeBFunction>
<es:userLabel></es:userLabel>
<es:dscpLabel>24</es:dscpLabel>
<es:dnsLookupOnTai>1</es:dnsLookupOnTai>
<es:eNBId>32509</es:eNBId>
</es:vsDataENodeBFunction>
</xn:attributes>
<xn:VsDataContainer id="CC_3250_32509_L1_B">
<xn:attributes>
<xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
<es:earfcndl>1651</es:earfcndl>
<es:earfcnul>19651</es:earfcnul>
</xn:attributes>
</xn:VsDataContainer>
..
<xn:VsDataContainer id="CD_4250_32509_L1_B">
<xn:attributes>
<xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
<es:earfcndl>1651</es:earfcndl>
<es:earfcnul>19651</es:earfcnul>
</xn:attributes>
</xn:VsDataContainer>
<xn:VsDataContainer id="DC_3250_32509_L1_C">
<xn:attributes>
<xn:vsDataType>testranCellFDD</xn:vsDataType>
<es:earfcndl>165</es:earfcndl>
<es:earfcnul>19651</es:earfcnul>
</xn:attributes>
</xn:VsDataContainer>
</xn:VsDataContainer>
..
</xn:ManagedElement>
</xn:MeContext>
</xn:SubNetwork>
</xn:SubNetwork>
</configData>
</bulkFile>
Here I want to get the values for the variables, C #, which have been declared as subnetwork, sitename, eNBId, cellname, earfcndland earfcnul
all information is under the tag root tag <xn:SubNetwork id="M_ROOT">, the rest is all for all the sites covered by the root, and there I put only one part of the site. Logics
subnetwork = <xn:SubNetwork id > attribute value
sitename = <xn:MeContext id> attribute value
eNBId = <es:eNBId> value, here the important thing is, there will be huge number of `<xn:VsDataContainer id="1">` parent tag,but the filtration is based on `<xn:vsDataType>` inner tag which is of `vsDataENodeBFunction`.
cellname = `<xn:VsDataContainer id>` attribute value and
`earfcndl` and `earfcnul` is values for `<es:earfcndl> and <es:earfcnul>` tag .Here also filtration is based on <xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
therefore I want to receive subnetwork = G-Mum,,sitename = 32509_I_East,,eNBId=32509,,cellname=BC_3250_32509_L1_B,,earfcndl=1651,,earfcnul=19651.
Here I made the following code, but got stuck and don't know what to do. But I can guarantee that this is the only way ( xmlreaderand (XElement)XNode.ReadFrom) we can read 7Gb Xml file, all the rest will throw out "Exceptions from memory"
using (XmlReader xr = XmlReader.Create(path))
{
xr.MoveToContent();
XNamespace un = xr.LookupNamespace("un");
while (xr.Read())
{
while (xr.NodeType == XmlNodeType.Element && xr.NamespaceURI == un && xr.LocalName == "M_ROOT")
{
XElement pin = (XElement)XNode.ReadFrom(xr);
var data = from atts in pin.Elements(un + "attributes")
select new
{
eNBId= (string)atts.Element(es + "eNBId"),
}
}
}
- xn: SubNetwork id = "M_ROOT", , , vsDataEUtranCellFDD
@jdweng , xml, xml, (XElement) XElement.ReadFrom(reader); . xml.
<xn:SubNetwork id="M_ROOT">--------------Root
<xn:SubNetwork id="G-Mum">---------Region
<xn:MeContext id="32509_I_East">-----sites
<xn:VsDataContainer id="BC_3250_32509_L1_B"> ---Cells
<xn:attributes>
<xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
</xn:MeContext>
</xn:SubNetwork>
</xn:SubNetwork>
, - , ,
@jdweng, , - , , .
Heirarchy
`<xn:SubNetwork>` --------Root and only one
<xn:SubNetwork> , , id G-, G-Mum
<xn:MeContext> , , <xn:VsDataContainer>, node <xn:vsDataType>vsDataManagedElement</xn:vsDataType>, <es:eNBId>.
<xn:VsDataContainer> <xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType> . () . SO <xn:VsDataContainer>, <xn:vsDataType>vsDataENodeBFunction</xn:vsDataType> eNBId <xn:vsDataType>vsDataEUtranCellFDD</xn:vsDataType>
, , , .. VsDataEUtranCellFDD vsDataENodeBFunction.I xml,
10/10/16
xml , VsDataContainer VsDataContainer <xn:vsDataType>vsDataENodeBFunction</xn:vsDataType>, - vsDataENodeBFunction . Skip(1),
vsDataManagedElement