Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb avec la serialisation --> efface des params de config xml

2 réponses
Avatar
Saulot
Bonjour,
Je suis en proie à une malediction.

J'ai une classe comme suit :
Public Class LogErrorCollection
public ArrayList Collection

Mon problème vient de la purge du fichier XML :
Lorsque je veux purger, je me contente de faire un Collection.Clear() et de
sauvegarder.
Et LA ! MAGIE : le parametre ":stylesheet type="text/xsl" href="report.xsl""
a DISPARU !!!

Lorsque je serialise, j'obitent ce que je veux (AU DETAIL PRES cité) :
<?xml version="1.0" encoding="utf-8" ?>
<LogErrorCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST</Message>
<StackTrace>TEST</StackTrace>
</Collection>
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST2</Message>
<StackTrace>TEST2</StackTrace>
</Collection>
</LogErrorCollection>

Or je voudrais :
<?xml:stylesheet type="text/xsl" href="log.xsl" version="1.0"
encoding="utf-8" ?>
<LogErrorCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST</Message>
<StackTrace>TEST</StackTrace>
</Collection>
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST2</Message>
<StackTrace>TEST2</StackTrace>
</Collection>
</LogErrorCollection>

Une Explication ?
Merci de votre aide.

PS : Code de ma serialisation :
XmlSerializer Serial = new XmlSerializer(typeof(LogErrorCollection));
StreamWriter writer = new StreamWriter(LogFile);
try
{
Serial.Serialize(writer, this);
}
catch{}
writer.Close();

2 réponses

Avatar
Frederic Melantois
Bonjour,

Essayez de remplacer le StreamWriter par un XmlTextWriter.

Ensuite la méthode WriteProcessingInstruction doit vous permettre "de
personaliser" le fichier xml

XmlTextWriter writer = new XmlTextWriter(LogFile);
writer.WriteProcessingInstruction("xml-stylesheet","type='text/xsl'
href='report.xsl'");


Frédéric Mélantois


"Saulot" a écrit dans le message de
news:4111d395$0$28253$
Bonjour,
Je suis en proie à une malediction.

J'ai une classe comme suit :
Public Class LogErrorCollection
public ArrayList Collection

Mon problème vient de la purge du fichier XML :
Lorsque je veux purger, je me contente de faire un Collection.Clear() et


de
sauvegarder.
Et LA ! MAGIE : le parametre ":stylesheet type="text/xsl"


href="report.xsl""
a DISPARU !!!

Lorsque je serialise, j'obitent ce que je veux (AU DETAIL PRES cité) :
<?xml version="1.0" encoding="utf-8" ?>
<LogErrorCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST</Message>
<StackTrace>TEST</StackTrace>
</Collection>
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST2</Message>
<StackTrace>TEST2</StackTrace>
</Collection>
</LogErrorCollection>

Or je voudrais :
<?xml:stylesheet type="text/xsl" href="log.xsl" version="1.0"
encoding="utf-8" ?>
<LogErrorCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST</Message>
<StackTrace>TEST</StackTrace>
</Collection>
<Collection>
<Date>2004-08-03T09:47:54.4171530+02:00</Date>
<Message>TEST2</Message>
<StackTrace>TEST2</StackTrace>
</Collection>
</LogErrorCollection>

Une Explication ?
Merci de votre aide.

PS : Code de ma serialisation :
XmlSerializer Serial = new XmlSerializer(typeof(LogErrorCollection));
StreamWriter writer = new StreamWriter(LogFile);
try
{
Serial.Serialize(writer, this);
}
catch{}
writer.Close();





Avatar
Saulot
Ca marche au poil ^^
Merci beaucoup.

"Frederic Melantois" a écrit dans le message de
news:cesog3$122$
Bonjour,

Essayez de remplacer le StreamWriter par un XmlTextWriter.

Ensuite la méthode WriteProcessingInstruction doit vous permettre "de
personaliser" le fichier xml

XmlTextWriter writer = new XmlTextWriter(LogFile);
writer.WriteProcessingInstruction("xml-stylesheet","type='text/xsl'
href='report.xsl'");


Frédéric Mélantois


"Saulot" a écrit dans le message de
news:4111d395$0$28253$
> Bonjour,
> Je suis en proie à une malediction.
>
> J'ai une classe comme suit :
> Public Class LogErrorCollection
> public ArrayList Collection
>
> Mon problème vient de la purge du fichier XML :
> Lorsque je veux purger, je me contente de faire un Collection.Clear() et
de
> sauvegarder.
> Et LA ! MAGIE : le parametre ":stylesheet type="text/xsl"
href="report.xsl""
> a DISPARU !!!
>
> Lorsque je serialise, j'obitent ce que je veux (AU DETAIL PRES cité) :
> <?xml version="1.0" encoding="utf-8" ?>
> <LogErrorCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <Collection>
> <Date>2004-08-03T09:47:54.4171530+02:00</Date>
> <Message>TEST</Message>
> <StackTrace>TEST</StackTrace>
> </Collection>
> <Collection>
> <Date>2004-08-03T09:47:54.4171530+02:00</Date>
> <Message>TEST2</Message>
> <StackTrace>TEST2</StackTrace>
> </Collection>
> </LogErrorCollection>
>
> Or je voudrais :
> <?xml:stylesheet type="text/xsl" href="log.xsl" version="1.0"
> encoding="utf-8" ?>
> <LogErrorCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <Collection>
> <Date>2004-08-03T09:47:54.4171530+02:00</Date>
> <Message>TEST</Message>
> <StackTrace>TEST</StackTrace>
> </Collection>
> <Collection>
> <Date>2004-08-03T09:47:54.4171530+02:00</Date>
> <Message>TEST2</Message>
> <StackTrace>TEST2</StackTrace>
> </Collection>
> </LogErrorCollection>
>
> Une Explication ?
> Merci de votre aide.
>
> PS : Code de ma serialisation :
> XmlSerializer Serial = new XmlSerializer(typeof(LogErrorCollection));
> StreamWriter writer = new StreamWriter(LogFile);
> try
> {
> Serial.Serialize(writer, this);
> }
> catch{}
> writer.Close();
>
>
>