private void FindAllNodes(XNode node) { if (node == null) { return; } //Console.WriteLine(node.); if (node.NodeType == System.Xml.XmlNodeType.Element) { var element = node as XElement; if (element == null) { return; } var firstNode = element.FirstNode as XElement; if (firstNode == null) { FindAllNodes(element.NextNode); return; } if (firstNode.Name.LocalName == "parameterDefinition") { JobProperty field = new JobProperty(); FindAllNodes(firstNode, ref field); } else { FindAllNodes(element.NextNode); } } }
private void FindAllNodes(XNode node, ref JobProperty field) { if (node == null) { return; } var element = node as XElement; var firstNode = element?.FirstNode as XElement; if (firstNode == null) { return; } var value = firstNode?.Value; if (firstNode.Name.LocalName.ToLowerInvariant().Contains("name")) { field.Key = value; } else if (firstNode.Name.LocalName.ToLowerInvariant().Contains("value")) { if (field.Value == value) { field.FieldType = element.FirstAttribute.Value.ToString(); FillField(element.NextNode, ref field); FillField(element.NextNode.NextNode, ref field); fields.Add(field); field = new JobProperty(); FindAllNodes(element.Parent.NextNode, ref field); return; } else { field.Value = value; } } FindAllNodes(firstNode, ref field); }
private void FillField(XNode node, ref JobProperty field) { if (node == null) { return; } var element = node as XElement; if (element.Name.LocalName.ToLowerInvariant().Contains("name")) { field.Key = element.Value; } else if (element.Name.LocalName.ToLowerInvariant().Contains("value")) { field.Value = element.Value; } else if (element.Name.LocalName.ToLowerInvariant().Contains("description")) { field.Description = element.Value; } }