0/5 (2 avis)
Snippet vu 8 696 fois - Téléchargée 28 fois
using System; using System.Xml; using System.IO; namespace CodesSources.XML { /// <summary> /// Description résumée de Sample. /// </summary> class Sample { /// <summary> /// Point d'entrée principal de l'application. /// </summary> /// <example> /// ***.exe "chemin au fichier XML source" , /// "chemin au fichier XML résultat" , /// [Y/N], /// "nombre de d'espace pour l'indentation" /// ***.exe "../test.xml", "../testResult.xml", "Y", 4 /// ***.exe "../test.xml", "../testResult.xml", "N" /// </example> [STAThread] static void Main(string[] args) { string sIndent = "Y"; if (args[2].Length > 0 || args[2] != null ) sIndent=args[2]; bool bIndent = (sIndent == "Y"); //(valeur booléene) int iSpaceIndent = 0; if (sIndent.Equals("Y")) { if ( args[3] != null || args[3].Length > 0 ) iSpaceIndent = Convert.ToInt32(args[3]); } //on initialise la classe IndentXml IndentXml oIndXMl = new IndentXml(); //on lit le flux du fichier XML à traiter StreamReader osRd = new StreamReader(args[0]); string sFlux = osRd.ReadToEnd(); osRd = null; /* Appel de la calsse d'indentation */ //on effectue la transformation oIndXMl.sFluxXMLOriginal = sFlux; string sResult = oIndXMl.Execute(bIndent,iSpaceIndent); oIndXMl=null; /* Fin d'appel */ // on génére le fichier résultat ; StreamWriter osWr = new StreamWriter(args[1],false); osWr.Write(sResult); osWr.Flush(); osWr.Close(); } } class IndentXml { public string sFluxXMLOriginal; public IndentXml() { } /// <summary> /// Cette fonction s'appuie sur un XmlDoc qui vas piloter un XmlTextWriter /// </summary> /// <param name="bIndentation"></param> /// <param name="iNombreIndent"></param> /// <returns>le flux retouché</returns> public string Execute(bool bIndentation, int iNombreIndent) { XmlDocument oxDoc = new XmlDocument(); StringWriter ostw = new StringWriter(); XmlTextWriter oxtWrt = new XmlTextWriter(ostw); //on charge le flux XML oxDoc.LoadXml(sFluxXMLOriginal); //on paramétre le XmlTextWriter pour la génération du flux de sortie if (bIndentation) { oxtWrt.Formatting = Formatting.Indented; oxtWrt.Indentation = iNombreIndent; oxtWrt.IndentChar = ' '; } else { oxtWrt.Formatting= Formatting.None; } //le XmlDoc pilote automatiquement le XmlTextWriter oxDoc.WriteTo(oxtWrt); //On renvoit le flux de sortie du writer return ostw.ToString(); } } }
6 sept. 2006 à 13:52
using (StringWriter body = new StringWriter())
{
XmlWriterSettings set = new XmlWriterSettings();
set.Indent = true;
set.Encoding = Encoding.UTF8;
using (XmlWriter writer = XmlWriter.Create(body, set))
{
// insert code here
}
}
14 janv. 2004 à 00:35
Je verifierais a l'occasion ;)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.