ďťż
Podstrony
|
telcocafewitamprzypuśćmy ze mam plik: (xml) <?xml version="1.0"?> <acc pass="aaa" lol="1"> <dane> <gosc name="Kochanek"/> <gosc name="Bolek"/> <gosc name="Lolek"/> </dane> </acc> jak pobrać mogę pobrać te dane: Kochanek, Bolek, Lolek (niezaleznie od ilości dodatkowych wpisów oraz ich imion)? coś jakby search('<gosc name="*"/>'); heh :P proszę o pomoc http://pl2.php.net/m.../pl/ref.dom.php @up: a ja pomyślałem :P <?php # pewnie to nie jest jakieś wydajne, ale na szybko działa :D $f = file_get_contents('test.xml'); $xml = new SimpleXMLElement($f); foreach($xml->dane->gosc as $a) { foreach($a->attributes() as $b=>$c) { if ($b=='name') echo $c; } } ?> a nie da się tego zrobić bez tego DOM'u? @up wyprzedziles mnie :P zaraz zobacze jak to działa @edit: Fatal error: Cannot instantiate non-existent class: simplexmlelement in C:\Program Files\WebServ\httpd\htdocs\account\panel.php on line 11 linia: $xml = new SimpleXMLElement($file); hmm? :( a już wiem nie mam php 5 :D juz instaluje :> @argh! <?xml version="1.0"?> <account pass="d4krr2ky" premDays="0" premEnd="1195140241"><characters><character name="Kochanek"/><character name="Kochanek"/><character name="Kochanek"/><character name="Kochanek"/></characters></account> Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Start tag expected, '<' not found in C:\Program Files\WebServ\httpd\htdocs\account\panel.php on line 11 Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: F:\poi\Project-XML\data\accounts/215221.xml in C:\Program Files\WebServ\httpd\htdocs\account\panel.php on line 11 Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^ in C:\Program Files\WebServ\httpd\htdocs\account\panel.php on line 11 Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\Program Files\WebServ\httpd\htdocs\account\panel.php:11 Stack trace: #0 C:\Program Files\WebServ\httpd\htdocs\account\panel.php(11): SimpleXMLElement->__construct('F:\poi\Project-...') #1 C:\Program Files\WebServ\httpd\htdocs\account\login.php(3): include('C:\Program File...') #2 C:\Program Files\WebServ\httpd\htdocs\page.php(14): include('C:\Program File...') #3 C:\Program Files\WebServ\httpd\htdocs\index.php(54): include('C:\Program File...') #4 {main} thrown in C:\Program Files\WebServ\httpd\htdocs\account\panel.php on line 11 Użytkownik PiKey edytował ten post 15 listopad 2007, 20:38 A jak wywołujesz kod? Zamieniasz wszystko odpowiednio? W ogóle samo$f = file_get_contents('test.xml'); $xml = new SimpleXMLElement($f);działa? Jeśli tak, to zróbvar_dump($xml);i sprawdź co siedzi. działa, wielkie dzięki :) bład jaki popełniłem: $file = <sciezka> $xml = new SimpleXMLElement(file_get_contents($file)); zamiast dać file_get_contents(<sciezka>); :P @edit dobra a teraz mam inne pytanie: jak usunąć któryś z wpisów? :) ============================== czy ktoś mi jeszcze moze pomóc wyciągnąć informacje level z takiego plik xml: <?xml version="1.0" encoding="UTF-8"?> <player name="Kochan" level="1"> [...] </player> jakoś sam sobie nie mogę dać rady :( $xml = new SimpleXMLElement(file_get_contents($file)); foreach($xml->player as $a) { foreach($a->attributes() as $b=>$c) { if ($b=='level') echo $c; } } Użytkownik PiKey edytował ten post 16 listopad 2007, 15:12 |
|||
Sitedesign by AltusUmbrae. |