praegune kellaaeg 18.06.2025 11:43:58
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Keios
HV vaatleja

liitunud: 17.05.2004
|
13.11.2008 11:43:08
Probleem php, simplxml ja dom'ga (uus mure) |
|
|
Soovin php-ga xml faili muuta: lisada, kustutada ja muuta nodesid.
Google abiga olen midagi sellist kokku kirjutanud aga miskipärast ei tööta salvestamine
Dom objekt on mängu toodud, sest ei leidnud simplexml-lt salvestamise võimalust.
<?php
$dom = new domDocument;
$dom->load("pildid.xml");
$s = simplexml_import_dom($dom);
$uuspilt = $s->addChild('pilt');
$uuspilt->addChild('fail', 'karu.jpg');
$uuspilt->addChild('kirjeldus', 'karuke');
$dom = dom_import_simplexml($s);
print $dom->ownerDocument->saveXML();
$dom->save("kana.xml")
?>
|
Igaksjuhuks ka näites kasutatud xml faili sisu:
<?xml version="1.0" encoding="utf-8"?>
<pildid>
<pilt>
<jrknr>1</jrknr>
<fail>hobune.jpg</fail>
<kirjeldus>minu hobune</kirjeldus>
</pilt>
<pilt>
<jrknr>2</jrknr>
<fail>rong.jpg</fail>
<kirjeldus>rong</kirjeldus>
</pilt>
<pilt>
<jrknr>3</jrknr>
<fail>ahven.jpg</fail>
<kirjeldus>minu ahven</kirjeldus>
</pilt>
<pilt>
<jrknr>4</jrknr>
<fail>nugis.jpg</fail>
<kirjeldus>minu nugis</kirjeldus>
</pilt>
</pildid>
|
_________________ "I don't count my sit-ups, I only start counting when it starts hurting because they’re the only ones that count". - Muhammad Ali
viimati muutis Keios 11.12.2008 20:20:45, muudetud 1 kord |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
10 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
13.11.2008 12:14:43
Re: Probleem php, simplxml ja dom'ga |
|
|
Keios kirjutas: |
Soovin php-ga xml faili muuta: lisada, kustutada ja muuta nodesid.
Google abiga olen midagi sellist kokku kirjutanud aga miskipärast ei tööta salvestamine
Dom objekt on mängu toodud, sest ei leidnud simplexml-lt salvestamise võimalust.
<?php
$dom = new domDocument;
$dom->load("pildid.xml");
$s = simplexml_import_dom($dom);
$uuspilt = $s->addChild('pilt');
$uuspilt->addChild('fail', 'karu.jpg');
$uuspilt->addChild('kirjeldus', 'karuke');
$dom = dom_import_simplexml($s);
print $dom->ownerDocument->saveXML();
$dom->save("kana.xml")
?>
|
|
sa kirjutad $dom'i üle DOMElement'iga
edit: peaks olema parem lahendus
http://ee.php.net/manual/en/function.simplexml-element-asXML.php
$dom = dom_import_simplexml($s)->ownerDocument;
print $dom->saveXML();
$dom->save("kana.xml")
|
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
Keios
HV vaatleja

liitunud: 17.05.2004
|
11.12.2008 20:20:20
|
|
|
Väga suur tänu!
Nüüd järgmine probleem.
Laen dom'i abil failist xmli, impordin ta simplexml-i ja siis soovin kahe node sisu üksteisega ära vahetada. Aga mingil müstilisel kombel kirjutatakse muutujate väärtus üle ja tulemuseks on kaks samasuguse sisuga node'i.
(Vahemuutujad (a,b,c,d) ja echod võtsin appi probleemi otsimiseks).
Probleem lühidalt - echode (rida 28 ja 31) väljund peaks olema täpselt sama.
Php kood:
<?php
$rada = "";
$andmeteFail = "data.xml";
$doc = new DOMDocument();
$doc->load( $andmeteFail );
$direction = $_GET['direction'];
$movableID = $_GET['movid'];
if ($direction != null && $movableID != null)
{
$teinePiltID;
if ($direction === 'right')
$teinePiltID = $movableID + 1;
else if ($direction == 'left')
$teinePiltID = $movableID - 1;
//DOM --> SIMPLEXML
$galerii = simplexml_import_dom($doc);
$uusGalerii = $galerii;
$a = $galerii->pilt[(int)$teinePiltID]->fail;
$b = $galerii->pilt[(int)$teinePiltID]->kirjeldus;
$c = $galerii->pilt[(int)$movableID]->fail;
$d = $galerii->pilt[(int)$movableID]->kirjeldus;
echo "a = $a<br /> b = $b<br /> c = $c<br /> d = $d <br /><br />";
$uusGalerii->pilt[(int)$movableID]->fail = $a;
echo "a = $a<br /> b = $b<br /> c = $c<br /> d = $d <br /><br />";
$uusGalerii->pilt[(int)$movableID]->kirjeldus = $b;
$uusGalerii->pilt[(int)$teinePiltID]->fail = $c;
$uusGalerii->pilt[(int)$teinePiltID]->kirjeldus = $d;
//SIMPLEXML --> DOM
$tmpDoc = dom_import_simplexml($uusGalerii);
$doc->importNode($tmpDoc, true);
$doc->saveXML();
$doc->save($andmeteFail);
}
?>
|
ja xml:
<?xml version="1.0" encoding="utf-8"?>
<pildid>
<pilt>
<jrknr>0</jrknr>
<fail>suksu.JPG</fail>
<kirjeldus>
Sporthobune
</kirjeldus>
</pilt>
<pilt>
<jrknr>1</jrknr>
<fail>nugis.jpg</fail>
<kirjeldus>Sportnugis</kirjeldus>
</pilt>
<pilt>
<jrknr>2</jrknr>
<fail>karu.JPG</fail>
<kirjeldus>
karu pilt
</kirjeldus>
</pilt>
</pildid>
|
_________________ "I don't count my sit-ups, I only start counting when it starts hurting because they’re the only ones that count". - Muhammad Ali |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
10 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|