private string printNodeTagStart(IXMLNodeDecorator dec, XmlNode node) { string ret = ""; // start tag or start element switch (node.NodeType) { case XmlNodeType.Document: /* nop */ break; case XmlNodeType.XmlDeclaration: ret += "<?" + node.Name + " " + node.Value + "?>"; break; case XmlNodeType.Element: ret += dec.beforeStartElement(); ret += node.Name; if (node.Attributes != null) { foreach (XmlNode attr in node.Attributes) { Console.WriteLine("attr.Name = [" + attr.Name + "]"); Console.WriteLine("attr.Value = [" + attr.Value + "]"); ret += dec.beforeAttributeName(); ret += attr.Name; ret += dec.afterAttributeName(); ret += "="; ret += dec.beforeAttributeValue(); ret += dec.AttributeQuote(); ret += attr.Value; ret += dec.AttributeQuote(); ret += dec.afterAttributeValue(); } } ret += dec.afterStartElement(); break; case XmlNodeType.Text: ret += node.Value; break; default: break; } return(ret); }