PDA

View Full Version : c++ xml


Gheto
15-11-2012, 11:17
Ciao a tutti,
devo creare un codice c++ che mi scrive un file xml,
in pratica l'xml chedeve venir fuori è simile a questo:

<?xml version="1.0" ?>

... bla bla bla ...

<templates> <template mass="0" calc_props="yes" volume="0"
name="Nome Particella" I_x="0" material="" I_y="0" I_z="0" >
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="0" name="Sfera 0" />
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="1" name="sfera 1" />
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="2" name="sfera 2" />
</template>

... bla bla bla ...

</simulation>

e la parte che devo modificare è questa:
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="0" name="Sfera 0" />

che deve essere ricopiata più volte (con un ciclo for presumo) modificano solo i valori numerici (che possiedo in un file di testo), qualcuna ha qualche suggerimento?
Grazie,
buona giornata!

[Kendall]
15-11-2012, 11:56
Ciao a tutti,
devo creare un codice c++ che mi scrive un file xml,
in pratica l'xml chedeve venir fuori è simile a questo:

<?xml version="1.0" ?>

... bla bla bla ...

<templates> <template mass="0" calc_props="yes" volume="0"
name="Nome Particella" I_x="0" material="" I_y="0" I_z="0" >
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="0" name="Sfera 0" />
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="1" name="sfera 1" />
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="2" name="sfera 2" />
</template>

... bla bla bla ...

</simulation>

e la parte che devo modificare è questa:
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="0" name="Sfera 0" />

che deve essere ricopiata più volte (con un ciclo for presumo) modificano solo i valori numerici (che possiedo in un file di testo), qualcuna ha qualche suggerimento?
Grazie,
buona giornata!

Scrivere il proprio parser xml non è cosa banale, e soprattutto a meno di funzionalità molto particolari sarebbe una grossa perdita di tempo.
Ti conviene piuttosto basarti su parser pre-esistenti. Da parecchio scrivo su C# e non mi è mai capitato precedentemente di avere a che fare con gli xml su c++, ma ho sentito parlare bene di questo parser (e relativa implementazione nelle librerie boost) --> RapidXML (http://rapidxml.sourceforge.net/).

Prova a darci un'occhiata.

Gheto
15-11-2012, 12:05
;38540830']Scrivere il proprio parser xml non è cosa banale, e soprattutto a meno di funzionalità molto particolari sarebbe una grossa perdita di tempo.
Ti conviene piuttosto basarti su parser pre-esistenti. Da parecchio scrivo su C# e non mi è mai capitato precedentemente di avere a che fare con gli xml su c++, ma ho sentito parlare bene di questo parser (e relativa implementazione nelle librerie boost) --> RapidXML (http://rapidxml.sourceforge.net/).

Prova a darci un'occhiata.
grazie, adesso provo.... :)
ma non dovrebbe essere complicato credo,
alla fine si tratta di scrivere n voci del tipo:
<sphere physical_radius="0.001" x="0.002" y="0.003" z="0.004" contact_radius="0.001" id="0" name="Sfera 0" />
all'interno dello stesso file. :mc: