Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][PHP]Parsowanie xml-i w php-ie
srkhan
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.03.2011
Skąd: Bytów

Ostrzeżenie: (0%)
-----


Witam,
Próbuje wysłać zmienne do xml-a za pomocą php, ale tak by xm-l został nadpisany,
Mój kod php wygląda tak:
  1. <?php
  2. $tytul = $_POST['tytul'];
  3. $tresc =$_POST['tresc'];
  4.  
  5. $dane ='<?xml version="1.0" ?>
  6. <?xml-stylesheet type="text/xsl? href="xsl.xsl"?>
  7. <section>
  8. <artykul>
  9. <tytul>'.$tytul.'</tytul>
  10. <opis>'.$tresc.'</opis>
  11. </artykul>
  12. </section>
  13. ';
  14.  
  15. $wp = fopen('artykuly.xml', 'w+');
  16. fwrite($wp, $dane);
  17. fclose($wp);
  18.  
  19. <?phpr

A dokument xml tak:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <section>
  3. <artykul>
  4. <tytul>jakis tytuł</tytul>
  5. <opis> jakis opis</opis>
  6. </artykul>
  7. </section>


Bardzo proszę o pomoc.
Pozdrawiam
Krystian K.
Powód edycji: [wookieb]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Zamiast w+ daj samo w

to jest raz

dwa simplexml
Go to the top of the page
+Quote Post
srkhan
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.03.2011
Skąd: Bytów

Ostrzeżenie: (0%)
-----


Dziękuję za pomoc. Tak się składa, że ja w php-ie nie jestem mocny. Czytałem o SimpleXML, tylko że ja nic z tego nie mogę zrozumieć. (IMG:style_emoticons/default/wstydnis.gif)

Wykombinowałem coś takiego ale nadal nie działa:(
  1. <?php
  2. $tytul = $_POST['tytul'];
  3. $tresc =$_POST['tresc'];
  4.  
  5. $d = simplexml_load_file('artykuly.xml');
  6. $d->tytul->$tytul
  7. $d->opis->tytul
  8. echo $d->getName();
  9.  
  10. foreach ($d->children() as $child) {
  11. echo $child;
  12.  
  13. $wp = fopen('artykuly.xml', 'w');
  14. fwrite($wp, $d);
  15. fclose($wp);
  16.  
  17. <?php

Go to the top of the page
+Quote Post
frantic09
post
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 6
Dołączył: 7.03.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


A spróbuj do zapisu użyć
  1. $d->asXML("nazwapliku.xml");

Opisz jeszcze co Ci nie wychodzi (IMG:style_emoticons/default/wink.gif)

Ten post edytował frantic09 9.03.2011, 15:16:05
Go to the top of the page
+Quote Post
srkhan
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.03.2011
Skąd: Bytów

Ostrzeżenie: (0%)
-----


PHP pobiera zmienne z Flash-a.A PHP nie wysyła zmiennych do xml-a. I to własnie nie działa bo powinien xml pobrać te dwie zmienne za pomocą PHP. Ja już kombinuje z tym bardzo długo i przechodzę załamanie, że nic mi się nie udaje (IMG:style_emoticons/default/wstydnis.gif)

Kurcze, bardzo proszę o pomoc. Jest mi to bardzo potrzebne. (IMG:style_emoticons/default/co_jest.gif)

Ten post edytował srkhan 9.03.2011, 16:41:30
Go to the top of the page
+Quote Post
frantic09
post
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 6
Dołączył: 7.03.2011
Skąd: Kraków

Ostrzeżenie: (0%)
-----


W takim razie zerknij tutaj http://forum.php.pl/index.php?showtopic=144649 Jest tu dużo przydatnych Ci funkcji jak
  1. $xml->getElementsByTagName();
  2. $xml->getAttribute();
  3. $xml->setAttribute(); //ten chyba Ci pomoże w zmianie wartości zmeinnych

A jak nie, to tworzysz nowy plik XMLa (IMG:style_emoticons/default/tongue.gif) wykorzystując
  1. $xml->appendChild();
  2. $xml->createElement();
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Poproszę na PW poprawną nazwę tematu.
// Otwieram
Powód edycji: [wookieb]:
Go to the top of the page
+Quote Post
srkhan
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.03.2011
Skąd: Bytów

Ostrzeżenie: (0%)
-----


Ja już sam się gubię. Mam teraz taki kod w php-ie
  1. <?php
  2. $name = $_POST['name'];
  3. $message =$_POST['message'];
  4.  
  5. $dane ='<?xml version="1.0" ?>
  6. <?xml-stylesheet type="text/xsl? href="xsl.xsl"?>
  7. <section>
  8. <artykul>
  9. <tytul>'.$name.'</tytul>
  10. <opis>'.$message.'</opis>
  11. </artykul>
  12. </section>
  13. ';
  14.  
  15.  
  16. $wp = fopen('artykuly.xml', 'w');
  17. fwrite($wp, $dane);
  18. fclose($wp);
  19. ?>

Tylko jest jeden problem, cały kod działa, generuje xml-a ale usuwa poprzednie dane i wprowadza nowe. Mi zależy by on dodawał kolejne wpisy w xmlu i w dodatku na pierwszym miejscu. Pomoże ktoś?

Zmieniłem kod php na :
  1. $name = $_POST['name'];
  2. $message = $_POST['message'];
  3.  
  4. include 'artykuly.php';
  5.  
  6. $sxe = new SimpleXMLElement($xmlstr);
  7. $sxe->addAttribute('documentary');
  8.  
  9. $artykul = $sxe->addChild('artykul');
  10. $artykul->addChild('title', '$name');
  11. $artykul->addChild('plot', '$message');
  12.  
  13.  
  14. echo $sxe->asXML();


kod artykuly.php
  1. $xmlstr = <<<XML
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <section>
  4. <artykul>
  5. <tytul></tytul>
  6. <opis></opis>
  7. </artykul>
  8. </section>
  9. XML;


I nadal nie dopisuje danych do xml-a.
Proszę o pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:11