Estoy usando XmlWriterSettings para escribir Xml en el archivo. Tengo elementos con solo atributos, sin hijos. Los quiero a la salida como:Indique XmlWriterSettings para usar etiquetas de cierre automático
<element a="1" />
en lugar de
<element a="1"></element>
¿Puedo hacerlo con XmlWriterSettings?
EDIT:
código es el siguiente:
private void Mission_Save(string fileName)
{
StreamWriter streamWriter = new StreamWriter(fileName, false);
streamWriter.Write(Mission_ToXml());
streamWriter.Close();
streamWriter.Dispose();
_MissionFilePath = fileName;
}
private string Mission_ToXml()
{
XmlDocument xDoc;
XmlElement root;
XmlAttribute xAtt;
xDoc = new XmlDocument();
foreach (string item in _MissionCommentsBefore)
xDoc.AppendChild(xDoc.CreateComment(item));
root = xDoc.CreateElement("mission_data");
xAtt = xDoc.CreateAttribute("version");
xAtt.Value = "1.61";
root.Attributes.Append(xAtt);
xDoc.AppendChild(root);
//Out the xml's!
foreach (TreeNode node in _FM_tve_Mission.Nodes)
Mission_ToXml_private_RecursivelyOut(root, xDoc, node);
foreach (string item in _MissionCommentsAfter)
xDoc.AppendChild(xDoc.CreateComment(item));
//Make this look good
StringBuilder sb = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = " ";
settings.NewLineChars = "\r\n";
settings.NewLineHandling = NewLineHandling.Replace;
settings.OmitXmlDeclaration = true;
using (XmlWriter writer = XmlWriter.Create(sb, settings))
{
xDoc.Save(writer);
}
return sb.ToString();
}
private void Mission_ToXml_private_RecursivelyOut(XmlNode root, XmlDocument xDoc, TreeNode tNode)
{
root.AppendChild(((MissionNode)tNode.Tag).ToXml(xDoc));
foreach (TreeNode node in tNode.Nodes)
Mission_ToXml_private_RecursivelyOut(root, xDoc, node);
}
aquí _FM_tve_Mission es un control TreeView que tiene nodos, cada uno de los nodos tiene una etiqueta de MissionNode clase, que tiene método un ToXml que devuelve XmlNode que contiene este MissionNode convierte a XML
¿cuál es su código? Un [XmlWriter sin configuraciones específicas] (http://ideone.com/g158S) las escribe de la manera que desee –