Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: xml tiedoston vieminen tietokantaan

mmikko [07.02.2013 09:51:49]

#

kysyn tätä tällä puolella: eli onko mahdollista viedä xml-tiedosto tietokantaan(mysql). tarkotuksena olisi hakea xml-syöte ja ajaa sitä ajastetusti tietokantaan. tuo nyt hoituu kyllä windowsin ja linuxin ajastuksilla, mutta tuo xml-vieminen on vähän hämärän peitossa. kaikille kielille olen avoimena, millä vaan hoitus mahdollisimman jouhevasti tämä.

The Alchemist [07.02.2013 10:49:06]

#

Xml on tekstiä, tekstiä voi tallentaa tietokantaan. Premissit täyttyvät ja niistä seuraa johtopäätös, että xml:ää voi tallentaa tietokantaan. Jos haluat ehdottomasti säilöä xml:n vielä erillisiin tiedostoihin, niin voit tallentaa kantaan vain viitteen tiedostoon (sen polun).

qeijo [07.02.2013 11:14:42]

#

Herää kysymys, miksi pitää viedä xml - tietorakenne erilliseen säilöön? Luo xml - sisällöstä tietokantarakenne ja parsi tiedot kantaan xml - rakenteen sijasta, vai tarkoititko juuri tätä, kaipaat vain siihen työkalut?

Olettaen että xml struktuuri ei muutu ja tietotyypit/koko ovat tiedossa.

mmikko [07.02.2013 12:24:48]

#

eli tartteisin ton xml:n sisätävän datan mysql:ään jotta voin käsitellä sitä php:llä omassa projektissani. eli kysymys on, että onko olemassa valmiita työkaluja tähän?

Metabolix [07.02.2013 12:54:17]

#

Kyllä myös XML-muotoista tietoa voi käsitellä PHP:llä, joten siirto tietokantaan ei ole välttämätöntä.

Itse ainakin muuttaisin XML-tiedoston SQL-kyselyiksi ihan omalla skriptillä, koska se olisi luultavasti nopeampaa kuin jonkin hienon työkalun etsiminen ja opetteleminen.

qeijo [07.02.2013 13:38:22]

#

Esimerkiksi:

<?xml version="1.0" encoding="UTF-8"?>
<document>

    <henkilo>
        <nimi>Maikku Maikkunen</nimi>
        <puh>05058454114</puh>
        <sahkoposti>maikku@maikkunen.fi</sahkoposti>
    </henkilo>

    <henkilo>
        <nimi>Eunukki Eeponen</nimi>
        <puh>04558454114</puh>
        <sahkoposti>eunukki@eeponen.com</sahkoposti>
    </henkilo>

    <henkilo>
        <nimi>Fernando Haapanen</nimi>
        <puh>04048454114</puh>
        <sahkoposti>fernando@haapanen.com</sahkoposti>
    </henkilo>

</document>
$xml = simplexml_load_file("data.xml");

$query = $pdo->prepare('INSERT INTO henkilot (nimi, puh, sahkoposti) VALUES (?, ?, ?);');

foreach ($xml->henkilo as $henkilo) {

    $query->execute(array(
        $henkilo->nimi,
        $henkilo->puh,
        $henkilo->sahkoposti
    ));
}

mmikko [07.02.2013 18:03:19]

#

Tajuttoman suuret Kiitosket qeijo!!! Sekä kiitos muillekkin vastanneille. Tämä oli just sitä mitä hajin!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta