树型数据结构设计处理

怎么解析?
树型数据结构设计处理:
3个表来吧!
(1)one subnetwork
SubNetwork | Attribute[] | Container[]
string | Guid1,Guid2,Guid3 | Guid1,Guid2,Guid3
依次排列 依次排列

(2)one container(container a id)
Identity | IdPath | Attribute[]
Guid | Id1^Id2^Id3 | Guid1,Guid2,Gui3
层次关系 依次排列

(3)one attribute
Identity | vsDataType | vsDataFormateVersion | vsDataPlmn
Guid | | | Name1=Valule1,Name2=Valule2,Name3=Valule3
依次排列

怎么解析?
树型数据结构设计处理:
3个表来吧!
(1)one subnetwork
SubNetwork | Attribute[]    | Container[]
string     | Guid1,Guid2,Guid3  | Guid1,Guid2,Guid3
         依次排列         依次排列
 
(2)one container(container a id)
Identity | IdPath   | Attribute[]
Guid     | Id1^Id2^Id3  | Guid1,Guid2,Gui3
       层次关系   依次排列
 
(3)one attribute
Identity | vsDataType | vsDataFormateVersion | vsDataPlmn
Guid     |        |              | Name1=Valule1,Name2=Valule2,Name3=Valule3
                           依次排列

数据实例:

<xn:SubNetwork id="ONRM_RootMo_R">
            <xn:attributes>
                <xn:userDefinedNetworkType></xn:userDefinedNetworkType>
                <xn:userLabel>ONRM_RootMo_R</xn:userLabel>
            </xn:attributes>
            <xn:VsDataContainer id="1">
                <xn:attributes>
                    <xn:vsDataType>vsDataAreas</xn:vsDataType>
                    <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion>
                    <es:vsDataAreas/>
                </xn:attributes>
                <xn:VsDataContainer id="1_1_2">
                    <xn:attributes>
                        <xn:vsDataType>vsDataPlmn</xn:vsDataType>
                        <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion>
                        <es:vsDataPlmn>
                            <es:userLabel></es:userLabel>
                            <es:mcc>1</es:mcc>
                            <es:mnc>1</es:mnc>
                            <es:mncLength>2</es:mncLength>
                            <es:aliasPlmnIdentities></es:aliasPlmnIdentities>
                        </es:vsDataPlmn>
                    </xn:attributes>
                </xn:VsDataContainer>
                <xn:VsDataContainer id="214_3_2">
                    <xn:attributes>
                        <xn:vsDataType>vsDataPlmn</xn:vsDataType>
                        <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion>
                        <es:vsDataPlmn>
                            <es:userLabel></es:userLabel>
                            <es:mcc>214</es:mcc>
                            <es:mnc>3</es:mnc>
                            <es:mncLength>2</es:mncLength>
                            <es:aliasPlmnIdentities></es:aliasPlmnIdentities>
                        </es:vsDataPlmn>
                    </xn:attributes>
                    <xn:VsDataContainer id="14122">
                        <xn:attributes>
                            <xn:vsDataType>vsDataLocationArea</xn:vsDataType>
                            <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion>
                            <es:vsDataLocationArea>
                                <es:userLabel></es:userLabel>
                                <es:lac>14122</es:lac>
                                <es:t3212>10</es:t3212>
                                <es:att>1</es:att>
                            </es:vsDataLocationArea>
                        </xn:attributes>
                        <xn:VsDataContainer id="1">
                            <xn:attributes>
                                <xn:vsDataType>vsDataRoutingArea</xn:vsDataType>
                                <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion>
                                <es:vsDataRoutingArea>
                                    <es:userLabel></es:userLabel>
                                    <es:rac>1</es:rac>
                                    <es:nmo>1</es:nmo>
                                </es:vsDataRoutingArea>
                            </xn:attributes>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="3043">
                            <xn:attributes>
                                <xn:vsDataType>vsDataServiceArea</xn:vsDataType>
                                <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion>
                                <es:vsDataServiceArea>
                                    <es:userLabel></es:userLabel>
                                    <es:sac>3043</es:sac>
                                </es:vsDataServiceArea>
                            </xn:attributes>
                        </xn:VsDataContainer>

可以透露的是:

最终的实现还是用的是ParentId这样的设计,因为递归的层次大多很浅。

所以使用ParentId+不同的处理点枚举自动识别处理也很简单。

原文地址:https://www.cnblogs.com/hongjiumu/p/2827326.html