private string ToElementName(SimpleXmlElement element) { if (string.IsNullOrEmpty(element.Namespace)) { return(element.Name); } return(string.Format("{0}:{1}", GetPrefix(element.Namespace), element.Name)); }
private void WriteElement(SimpleXmlElement element) { writer.WritePropertyName(ToElementName(element)); writer.WriteStartObject(); if (element.Attributes != null && element.Attributes.Any()) { writer.WritePropertyName("attrs"); writer.WriteStartObject(); foreach (var attribute in element.Attributes) { writer.WritePropertyName(attribute.Name); if (attribute.PossibleValues == null || !attribute.PossibleValues.Any()) { writer.WriteNull(); } else { writer.WriteStartArray(); foreach (var value in attribute.PossibleValues) { writer.WriteValue(value); } writer.WriteEndArray(); } } writer.WriteEndObject(); } if (element.Children != null && element.Children.Any()) { writer.WritePropertyName("children"); writer.WriteStartArray(); foreach (var child in element.Children) { writer.WriteValue(ToElementName(child)); } writer.WriteEndArray(); } writer.WriteEndObject(); }
private void WriteElement(SimpleXmlElement element) { writer.WritePropertyName(element.Name.ToString()); writer.WriteStartObject(); if (element.Attributes != null && element.Attributes.Any()) { writer.WritePropertyName("attrs"); writer.WriteStartObject(); foreach (var attribute in element.Attributes.OrderByQualifiedName()) { writer.WritePropertyName(attribute.Name.ToString()); if (attribute.PossibleValues == null || !attribute.PossibleValues.Any()) { writer.WriteNull(); } else { writer.WriteStartArray(); foreach (var value in attribute.PossibleValues.OrderBy(v => v, StringComparer.InvariantCultureIgnoreCase)) { writer.WriteValue(value); } writer.WriteEndArray(); } } writer.WriteEndObject(); } if (element.Children != null && element.Children.Any()) { writer.WritePropertyName("children"); writer.WriteStartArray(); foreach (var child in element.Children.OrderBy(v => v.ToString(), StringComparer.Ordinal)) { writer.WriteValue(child.ToString()); } writer.WriteEndArray(); } writer.WriteEndObject(); }
private string ToElementName(SimpleXmlElement element) { if (string.IsNullOrEmpty(element.Namespace)) return element.Name; return string.Format("{0}:{1}", GetPrefix(element.Namespace), element.Name); }