- HigLaboSampleSource.zip
- Source
- HigLabo.Mail.SampleApplication
- HigLabo.Mail
- Async
- bin
- Release
- HigLabo.Mail.dll
- HigLabo.Net.dll
- Newtonsoft.Json.dll
- Common
- HigLabo.Mail.csproj
- HigLabo.Mail.csproj.user
- HigLabo.Mail.csproj.vspscc
- Imap
- Pop3
- Properties
- Smtp
- HigLabo.Net
- bin
- Release
- de
- System.Xml.Linq.resources.dll
- es
- System.Xml.Linq.resources.dll
- fr
- System.Xml.Linq.resources.dll
- HigLabo.Net.dll
- HigLabo.Net.Silverlight.dll
- HigLabo.Net.WindowsPhone7.dll
- it
- System.Xml.Linq.resources.dll
- ja
- System.Xml.Linq.resources.dll
- ko
- System.Xml.Linq.resources.dll
- Newtonsoft.Json.dll
- Newtonsoft.Json.Silverlight.dll
- Newtonsoft.Json.WindowsPhone7.dll
- ru
- System.Xml.Linq.resources.dll
- System.Xml.Linq.dll
- zh-Hans
- System.Xml.Linq.resources.dll
- zh-Hant
- System.Xml.Linq.resources.dll
- Core
- Extensions
- HigLabo.Net.csproj
- HigLabo.Net.csproj.user
- HigLabo.Net.csproj.vspscc
- HigLabo.Net.Silverlight.csproj
- HigLabo.Net.Silverlight.csproj.user
- HigLabo.Net.Silverlight.csproj.vspscc
- HigLabo.Net.WindowsPhone7.csproj
- HigLabo.Net.WindowsPhone7.csproj.user
- HigLabo.Net.WindowsPhone7.csproj.vspscc
- Http
- OAuth
- Properties
- Socket
- HigLaboSampleSource-noexe.zip
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HigLabo.Net
{
/// <summary>
///
/// </summary>
public class XmlData : Dictionary<String, String>
{
private const int DefaultIndent = 2;
/// <summary>
///
/// </summary>
public String XmlDeclaration { get; set; }
/// <summary>
///
/// </summary>
public String RootElementName { get; set; }
/// <summary>
///
/// </summary>
public XmlData Child { get; set; }
/// <summary>
///
/// </summary>
public List<XmlAttribute> Attributes { get; private set; }
/// <summary>
///
/// </summary>
public XmlData()
: this(String.Empty)
{
}
/// <summary>
///
/// </summary>
/// <param name="rootElementName"></param>
public XmlData(String rootElementName)
{
XmlDeclaration = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
RootElementName = rootElementName;
Attributes = new List<XmlAttribute>();
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public override string ToString()
{
return CreateXmlText(this, 0);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
private string CreateAttributeText(XmlData data)
{
if (data.Attributes.Count > 0)
{
return " " + String.Join(" ", data.Attributes.Select(a => a.ToString()));
}
return String.Empty;
}
/// <summary>
///
/// </summary>
/// <param name="data"></param>
/// <param name="indent"></param>
/// <returns></returns>
private String CreateXmlText(XmlData data, int indent)
{
var sb = new StringBuilder(1024);
if (indent == 0)
{
sb.AppendLine(data.XmlDeclaration);
}
sb.AppendFormat("{0}<{1}{2}>", new String(' ', indent), data.RootElementName, CreateAttributeText(data));
sb.AppendLine();
foreach (var key in data.Keys)
{
sb.AppendFormat("{0}<{1}>{2}</{1}>", new String(' ', indent + DefaultIndent), key, data[key]);
sb.AppendLine();
}
if (data.Child != null)
{
sb.AppendLine(CreateXmlText(data.Child, indent + DefaultIndent));
}
sb.AppendFormat("{0}</{1}>", new String(' ', indent), data.RootElementName);
return sb.ToString();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.