private static void ReadOutlines(XmlReader input, IOpmlOutlineProvider outlineProvider) { bool readContent = false; while (readContent || input.Read()) { readContent = false; if (input.NodeType == XmlNodeType.Element) { readContent = true; switch (input.Name) { case "outline": using (XmlReader subReader = input.ReadSubtree()) { outlineProvider.Outlines.Add(ConvertToIOpmlOutline(subReader)); } if (input.IsEmptyElement) { readContent = false; } break; default: readContent = false; break; } } } }
private static void SerializeOutlines(XmlDocument doc, XmlElement parent, IOpmlOutlineProvider outlineProvider) { if (outlineProvider != null) { foreach (IOpmlOutline outline in outlineProvider.Outlines) { XmlElement outlineElement = AppendNewElement(doc, parent, "outline"); if (outline.Type != null) { AppendNewAttribute(doc, outlineElement, "type", outline.Type); } if (outline.Text != null) { AppendNewAttribute(doc, outlineElement, "text", outline.Text); } SerializeOutlines(doc, outlineElement, outline); } } }