AUS CSV-Datei eine XML Datei

cent

Mitglied
Hallo,
ich habe eine CSV-Datei mit 1 000 Daten. Sie hat zwei Spalten

Name | Anzahl

Und ich würde sie nun gerne als XML Datei haben die dann so aufgebaut ist

<DB>
<Datensatz Anzahl="232">Michael</Datensatz >
<Datensatz Anzahl="132">Andé</Datensatz >
usw.
</DB>

gibt es da irgendwelche Tools die das können? Oder einen einfachen PHP Code?

Alles in eine mySQL DB zu importieren und dann wiederum als neue Datei auszulesen ist mir irgendwie zu umständlich.
 
das ist mit ein paar zeilen php-code getan.

1. datei oeffnen
2. schleife in der du zeile fuer zeile ausliest
3. zeile mit explode (nach |) aufspalten
4. xml-string basteln:
<Datensatz Anzahl="(explodeargument2)">(explodeargument1)></Datensatz>
5. string in neue datei schreiben
6. fertig!
 
Danke. Also in der Theorie klingt das echt schön einfach :)

Meine CSV Datei ist ja nun so aufgebaut:

Michael;82
Sven;151
Andre;3.427

usw. usw.


Kenne mich nun aber mit Dateiauselsen nicht aus. :(
 
Soooo. Habe das im Prinzip nun hinbekommen. Hätte aber noch eine Frage. Er schreibt mir nun die XML Datei so:

<ds a="11
">Michael</ds><ds a="1323
">André</ds><ds a="3434
">Flo</ds><ds a="1323
">Julia</ds>

usw usw
usw.

also mach nach der zahl einen umbruch, denn er aber nicht machen sollte. gibt es eine möglichkeit alle Leerzeichen aus der Datei zu entfernen? will ich nämlich nicht ;) außerdem muss ich nämlich kb sparen :)

vielen dank.
 
das newline (\n oder \r\n) kommt ja auch immer mit wenn du die zeile ausliest, das kannst du vor dem weiteren bearbeiten entfernen mit trim():
$zeile = trim($zeile);
 
hi leutz!

hat jemand links zu tuts für xml? würde mich mal interessieren...

matt:)

[edit]
k, ich verbesser mich: tuts rund um xml
[/edit]
 
Zuletzt bearbeitet:
Also irgendwie funktioniert das mit dem trim doch nicht.
ich bekomme trotzdem die umbrüche auch mit trim :(

PHP:
$fd = fopen ("daten.csv","r");
$fp_2 = fopen("db.xml", "w+");
$schreib = "<db>";
fwrite($fp_2, "$schreib");
while (!feof ($fd))
{
$buffer = fgets($fd,4096);
$i = explode(";",$buffer);
$schreib = "<ds a=\"$i[1]\">$i[0]</ds>";
fwrite($fp_2, trim($schreib));
}
$schreib = "</db>";
fwrite($fp_2, "$schreib");
 
Zurück