Un buon modo per creare file XML in fase di esecuzione

-2

Guarda questa struttura per un secondo:)

Dovreicreareunacosadelgeneretuttoinfasediesecuzione.Qualisonoivalorichepassiamoinfasediesecuzione?ivaloridistringachevedidopo"#" vengono passati in questo modo ad esempio AnimalBio, ClinBio, HumanGenome, ecc ... Quindi sto pensando di dichiarare alcuni metodi come

void AddDeclaration(string str) ;
void AddSubClass(string parent, string child);

tale che quando li chiamo creeranno quei tag XML-ish per me con i valori che ho inserito come HumnaBio.

Questi sono circa 15000 oggetti che aggiungerò ... Qual è l'approccio migliore che suggeriresti per fare questo? Pensi che l'uso della classe XMLDocument sia il modo migliore per farlo? o pensi che dovrei andare con la classe StringBuilder e aggiungerli come stringhe o altri modi per farlo?

Grazie.

    
posta Blake 07.08.2012 - 20:47
fonte

2 risposte

4

In .NET, la soluzione migliore sarebbe sfruttare la serializzazione XML . Ciò consentirebbe alla classe di apparire e comportarsi come una classe e generare magicamente (e leggere) il tuo XML.

Se non potessi ottenere questo risultato - che può essere una sfida a seconda di come l'XML è specc'd - hai alcune opzioni. Una sarebbe una serializzazione Xml completamente personalizzata utilizzando IXmlSerializable . Un altro è solo un approccio roll proprio usando XmlDocument o XmlTextWriter o molte altre classi orientate Xml in .NET. Questo approccio dovrebbe essere generalmente evitato.

    
risposta data 07.08.2012 - 21:04
fonte
2

Penso che scriverei semplicemente un semplice processore di modello di documento che prenderebbe esattamente lo stesso XML che hai postato e che sostituirà ogni "#" - segnaposto denotato con un valore specificato. Penso che passare attraverso un oggetto XML pesante per le risorse sia eccessivo per quello che stai facendo. Non so se ci sia un .NET equivalente a Velocity, ma questa è la direzione che prenderei.

    
risposta data 07.08.2012 - 21:06
fonte

Leggi altre domande sui tag