/// <summary> /// 查找当前节点下所有 FeatureGroup 并添加到列表中 /// </summary> /// <param name="featureGroupsNode">FeatureGroups 节点</param> /// <param name="featureGroups">保存 FeatureGroup 的字典</param> private static void GetFeatureGroups(XmlNode featureGroupsNode, Dictionary <string, GDTF_AttributeDefinitionsData_FeatureGroup> featureGroups) { // 查找 FeatureGroup 节点 foreach (XmlNode featureGroupNode in featureGroupsNode) { // 如果存在子节点 if (featureGroupNode.HasChildNodes) { GDTF_AttributeDefinitionsData_FeatureGroup featureGroup = new GDTF_AttributeDefinitionsData_FeatureGroup(); string featureGroupName = GetNodeAttribute(featureGroupNode, "Name"); if (featureGroupName != null) { featureGroup.featureGroupName = featureGroupName; if (featureGroupNode.HasChildNodes) { // 在当前 FeatureGroup 下添加 Feature GetFeatures(featureGroupNode, featureGroup); } featureGroups[featureGroupName] = featureGroup; } } } }
/// <summary> /// 查找当前节点下所有 Feature 并添加到 FeatureGroup 对象中 /// </summary> /// <param name="featureGroupNode">FeatureGroup 节点</param> /// <param name="featureGroup">FeatureGroup 对象</param> private static void GetFeatures(XmlNode featureGroupNode, GDTF_AttributeDefinitionsData_FeatureGroup featureGroup) { Dictionary <string, GDTF_AttributeDefinitionsData_Feature> features = new Dictionary <string, GDTF_AttributeDefinitionsData_Feature>(); foreach (XmlNode featureNode in featureGroupNode) { string featureName = GetNodeAttribute(featureNode, "Name"); if (featureName != null) { GDTF_AttributeDefinitionsData_Feature feature = new GDTF_AttributeDefinitionsData_Feature() { fatureName = featureName }; features[featureName] = feature; } } featureGroup.features = features; }