ďťż

[php] przeszukiwanie pliku

       

Podstrony


telcocafe

witam
przypuść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
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.