[ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
NapísalOffline : 02.07.2009 16:52 | uprava suboru, xml

Ahojte, moje akože xml má štruktúru
Kód:
<user><name>meno1</name><coordinates>19.6694147222,48.32968</coordinates></user>
<user><name>meno2</name><coordinates>17.1030725,48.1488916667</coordinates></user>


je so vlastne pre google maps
a teto môj súbor potom spracúvam ale ide o to že na zapisovanie, poprípade upravovanie používam niečo takéto
Kód:
// Generovanie na zápis
        $texttowrite = "<user><name>".diakritika($username)."</name><coordinates>$dlzka,$sirka</coordinates></user>\n";

        // Otvorenie suboru na zistenie typu operacie
        $handle = fopen("data.xml", 'r');
       // Precitanie suboru
       $datafile = fread($handle, filesize("data.xml"));
      fclose($handle);
   
        //overenie nicku
        if (strpos($datafile, "<name>".diakritika($username)."</name>")){
          $prepiss = fopen("data.xml", 'w');
          //nahradenie
            $textnew = preg_replace("(\<user><name>".diakritika($userdata["username"])."</name><coordinates>(.*?)\</coordinates></user>\n)is", $texttowrite, $datafile);
            // Zapis
          echo (fwrite($prepiss, $textnew) ? "<b>Údaje úspešne upravené</b><br><a href='index.php'>Pokračuj</a>" : "<b>Nastala chyba pri zápise dát<br><a href='/index.php'>Pokračuj</a></b>");
         fclose($prepiss);
        }
       else{
      $doplnenie = fopen("data.xml", 'a');
       // Zapis
        echo (fwrite($doplnenie, $texttowrite) ? "<b>Údaje úspešne zapísané</b><br><a href='/index.php'>Pokračuj</a>" : "<b>Nastala chyba pri zápise dát<br><a href='/index.php'>Pokračuj</a></b>");
        fclose($doplnenie);
      }
      unset($datafile);


a problém tu je v tom že občas, ale podla ma sa to stáva pri pridávanie nie upravovaní mi zmizne dosť veľká časť súboru
neviete prečo?

tuto som sa pýtal že ako to uzamknem ale myslím že to môj problém asi nevyrieši
http://www.pcforum.sk/len-1-moze-vykona ... 68592.html
lebo ono nezmizne tak že by chýbala čast tagu

štruktúra sa zachováva, preto si myslím že to bude spôsobené niečim ale neviem čím

Prosím za vaše názory a rady vopred ďakujem


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 0:30 | uprava suboru, xml

ked pouzivas xml-ko, nechapem, preco s nim pracujes len ako s obycajnym retazcom... skus vyskusat tento skript (ak mas php5):
Kód:
<?php
$username = 'stenley';
$dlzka = 10;
$sirka = 20;
$coords = $dlzka.','.$sirka;

$file = 'data.xml';

$dom = new DOMDocument;
$dom->formatOutput = TRUE;
$dom->preserveWhiteSpace = FALSE;
$dom->load($file);

$xpath = new DOMXPath($dom);

$entries = $xpath->query('//user[name = "'.$username.'"]/coordinates');
$node = $entries->item(0);
if(is_object($node)) {
   $node->nodeValue = $coords;
} else {
   $node = $dom->getElementsByTagName('user')->item(0)->cloneNode(TRUE);
   
   if(is_object($node)) {
      $node->childNodes->item(0)->nodeValue = $username;
      $node->childNodes->item(1)->nodeValue = $coords;
      
      $dom->documentElement->appendChild($node);
   }
}

$dom->save($file);
?>


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 7:05 | uprava suboru, xml

a mohol by si mi prosím vysvetliť ako to funguje?
lebo nezdá sa mi že to bude vyhovovať mojim potrebam
lebo v xml mam
<user><name>meno2</name><coordinates>17.1030725,48.1488916667</coordinates></user> ako jeden riadok


a ďalej ide o to že ak zadáš $username také ktoré už v xml je tak prepíše coordinates za nové a ak nieje tak pridá nový riadok


prepáš ale ja s xml moc robit neviem, ja ho viem len čítať nie vytvarať

Ďakujem


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 8:19 | uprava suboru, xml

zdanie niekedy klame :) vobec nevadi, ze mas jednotlivych userov na jednom riadku - na formatovani nezalezi, ak pouzijes triedy na pracu s xml... problem by mohol nastat prave v tvojom povodnom kode, ked by sa formatovanie tvojho xml zmenilo - musel by si to zmenit aj v tvojom skripte...

tento skript funguje presne ako tvoj, teda ak zadas existujuci username, tak sa prepisu len jeho coords... ak dany username v xmlku neexistuje, tak sa prida novy... jediny problem, ktory neriesi je, ak je xmlko prazdne, tak nevie pridat noveho usera, ale to by sa dalo jednoducho dorobit...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 8:25 | uprava suboru, xml

Citácia:
problem by mohol nastat prave v tvojom povodnom kode, ked by sa formatovanie tvojho xml zmenilo - musel by si to zmenit aj v tvojom skripte...


a co si myslel týmto?


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 8:29 | uprava suboru, xml

ak by si mal formatovane xmlko, napr:
Kód:
<user>
    <name>meno1</name>
    <coordinates>19.6694147222,48.32968</coordinates>
  </user>
  <user>
    <name>meno2</name>
    <coordinates>17.1030725,48.1488916667</coordinates>
  </user>

tak by si to nemohol vyhladavat (preg_replace) ako jeden riadok... alebo sa mylim?


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 8:44 | uprava suboru, xml

no to xml je uložené nejak takto

Kód:
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<user><name>user_1</name><coordinates>19.6694147222,48.32968</coordinates></user>
<user><name>user_2</name><coordinates>17.1030725,48.1488916667</coordinates></user>
</data>


s tým že to </data> nakonci som pridával pri čítaní, aby to pralo ako xml

ale keď to bude takto, tak to pôjde?


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 9:39 | uprava suboru, xml

nechapem, co ci pojde?


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 9:42 | uprava suboru, xml

ten tvoj skript


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 9:45 | uprava suboru, xml

jasne, ved vyskusaj... ak by to nahodou neslo, co nepredpokladam (ak mas php5), tak daj vediet...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 10:25 | uprava suboru, xml

vyzerá to že to funguje ako má, len mám ešte otázočku, ked to budem čítať používam niečo takéto
Kód:
$xml = simplexml_load_file('data.xml');
            foreach($xml as $value) {
                $datas[] = array(
                    "name"   => (string)$value->name,
                    "coordinates"  => (string)$value->coordinates,
                );
         }


malo by to fungovať

ale teraz ma zaujíma že ako získam coordinates z riadka kde viem len meno

vtedy som mal niečo takéto

Kód:
$handle = fopen("data.xml", 'r');
$datafile = fread($handle, filesize("data.xml"));
fclose($handle);

preg_match("(\<user><name>".diakritika($userdata["username"])."</name><coordinates>(.*?)\</coordinates></user>)", $datafile, $matches);


ako to spravím pomocou xml?

a posledná otázka, pri tom tvojom skripte sa nemôže stať že sa stratí časť súboru?


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 10:40 | uprava suboru, xml

jednoducho, mas to tam aj naznacene:
Kód:
$coords = $xpath->query('//user[name = "'.$username.'"]/coordinates')->item(0);
if(is_object($coords)) {
   echo $coords->nodeValue;
}

prvy radok z tohto kodu sluzi na vratenie vsetkych <coordinates>, kde <name> obsahuje prave zadany $username... item(0) vracia prvy vysledok... nodeValue vracia text medzi <coodinates></coordinates>

ci sa bude niekedy stracat obsah suboru, tak to ti neviem povedat, treba vyskusat...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 10:57 | uprava suboru, xml

ok zatial to ide

a posledná otázka ako zmažem ten jeden záznam keď poznáme len username?
:)


Offline

Správca fóra
Správca fóra
uprava suboru, xml

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 03.07.2009 11:04 | uprava suboru, xml

Kód:
$entries = $xpath->query('//user[name = "'.$username.'"]');
$node = $entries->item(0);
if(is_object($node)) {
   $dom->documentElement->removeChild($node);
}

Viac info na http://sk.php.net/manual/en/class.domdocument.php


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
uprava suboru, xml

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 03.07.2009 11:07 | uprava suboru, xml

fakt Ďakujem


 [ Príspevkov: 15 ] 


uprava suboru, xml



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

uprava xml

v Frontend

4

873

01.07.2009 11:59

Romanko

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava XML pomocou XSD

v Frontend

0

845

10.01.2022 19:35

natel

V tomto fóre nie sú ďalšie neprečítané témy.

kodovanie suboru - XML

v Frontend

20

2006

19.06.2009 11:00

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

spracovanie externeho XML suboru

v Backend

2

830

15.10.2009 21:42

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Perl zapis XML do suboru

v Backend

4

803

09.03.2013 13:54

tangerine

V tomto fóre nie sú ďalšie neprečítané témy.

autocomplete ajax z externého xml súboru

v Frontend

2

496

14.08.2018 10:24

Pablo Montero

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis zo suboru xml do html

v Frontend

10

1420

19.06.2007 18:48

javo

V tomto fóre nie sú ďalšie neprečítané témy.

generátor suboru sitemap.xml pre obrazky

v SEO, marketing a reklama

3

631

09.11.2013 11:22

capricorn7

V tomto fóre nie sú ďalšie neprečítané témy.

Alfa Kros, prevod súboru do xml

v Ostatné programy

0

790

24.07.2019 11:17

liveman

V tomto fóre nie sú ďalšie neprečítané témy.

Úprava STL súboru

v Ostatné

4

671

19.04.2024 11:01

Restorator

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava binarneho suboru

v Backend

1

457

21.03.2016 17:39

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava SWF suboru

v Backend

5

644

08.10.2013 16:30

1daemon1

V tomto fóre nie sú ďalšie neprečítané témy.

Import hesiel z XML suboru do Opery

v Sieťové programy

0

448

10.10.2015 14:09

Marsko

V tomto fóre nie sú ďalšie neprečítané témy.

Uprava textovo-grafickeho suboru

v Grafické programy

4

513

12.08.2013 23:06

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

Prenos suboru z Excel xls formatu do xml

v Ostatné programy

1

507

14.08.2013 16:53

Mandy

V tomto fóre nie sú ďalšie neprečítané témy.

Úprava súboru s licenciou LGPL

v Obchody, reklamácie a právo

0

501

24.03.2012 13:30

1daemon1



© 2005 - 2026 PCforum, edited by JanoF