TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[php5] simplexml nie działa , kubazzz 30/10/08 20:57 http://fubaz.blink.pl/test/test.php5
<?php
if (file_exists('plik.xml')) {
$xml = simplexml_load_file('plik.xml');
echo $xml->artykul[0]->id;
echo "<br/>jakieś bzdury<br/>";
echo $xml->artykul[0]->tytul;
echo "<br/>inne bzdury<br/>";
echo $xml->artykul[0]->uwagi;
echo "<br/>blablbbal<br/>";
print_r($xml);
}
else {
exit('Brak pliku bazy danych');
}
?>
http://fubaz.blink.pl/plik.xml
<artykul>
<id>1234567</id>
<tytul>przykładowy tytuł</tytul>
<uwagi>Uwagi dotyczące artykułu</uwagi>
</artykul>
i zobaczcie co dostaje..
po prostu $xml->artykul[0]->id; nie działa, jest pomijane.
ktoś ma koncepcję czemu?
taka składnia jest podana na php.net
przykład:
The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.
echo $xml->movie[0]->plot; // "So this language. It's like..."SM-S908 - hmm update , kubazzz 30/10/08 21:06
http://fubaz.blink.pl/test/plik.xml
ani błędu ani nic,
za to print_r($xml) działa...SM-S908 - Ehh... , Conroy 30/10/08 22:26
Kubazz, zmęczony jesteś.
Widzisz przecież co wypisuje print_r i nie ma tam elementu artykul. Artykuł to root element całego dokumentu i jest pomijamy przez php. Widzę, że dodatkowo chcesz mieć kilka artykułów - tak się nie da jak piszesz, oblecz ten plik w jakiś inny element główny np.:
<wiadomosci>
<artykul>
<id>1234567</id>
<tytul>przykładowy tytuł</tytul>
<uwagi>Uwagi dotyczące artykułu</uwagi>
</artykul>
<artykul>
<id>2</id>
<tytul>przykładowy tytuł 2</tytul>
<uwagi>Uwagi dotyczące artykułu 2</uwagi>
</artykul>
</wiadomosci>
Poniżej trochę teorii.
Zajrzyj na W3Schools do XML
http://www.w3schools.com/xml/xml_tree.asp
Cyt.
"
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
"
"The next line describes the root element of the document (like saying: "this document is a note"):"
"XML documents must contain a root element. This element is "the parent" of all other elements."
Później zajrzyj na stronę PHP
http://pl.php.net/...ction.simplexml-load-file.php
do Example #1 Interpret an XML document.
Chodzi w szczególe o linie komentarza
"// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title."
króte mówią, że w dokumencie masz jakiś root i w nim zawarty title.
A następnie spójrz na wydruk:
"
SimpleXMLElement Object
(
[title] => Example Title
...
)
"
Gdzię root nie jest wyświetlony i w ogóle wczytany do tablicy.http://flickr.com/photos/myhacien
da - dzięki za wyjaśnienie , kubazzz 30/10/08 22:35
ogólnie, ja jestem ostatnio w słabej kondycji psychofizycznej i rzeczywiście się wykładam na wszystkim co wymaga myślenia :/SM-S908
- nie znam XMLa ani jego obsługi w PHP i się tego wstydzę , bwana 30/10/08 22:18
ale między Twoim przykładem a przykładem z manuala widzę pewną różnicę:
u Ciebie jest <artykul>...</artykul> a w przykładzie (znalazłem go w manualu) jest
<movies>
<movie>...</movie>
<movie>...</movie>
</movies>
Jednym słowem w przykładzie z manuala powtarzalna informacja jest otoczona znacznikiem występującym raz - być może ma to znaczenie. Niezależnie od tego, to co pokazuje print_r faktycznie sugeruje, że Twoje użycie jest poprawne. Tak czy siak, sprawdź, czy otoczenie pojedynczych artykułów znacznikiem: <artykuly>...</artykuly> nie pomoże."you don't need your smile when I cut
your throat" - odpaliłem apacza, sprawdziłem, miałem rację , bwana 30/10/08 22:28
poza Tym włącz sobie komunikaty o błędach, u mnie Twój przykład wyświetlił: Notice: Trying to get property of non-object in (...)\xml\test.php
Aby widzieć więcej komunikatów o błędach, wywołaj na początku skryptu funkcję error_reporting, najlepiej z parametrem E_ALL (patrz manual) lub zainteresuj się ustawieniem display_errors w php.ini. Zdrówka!"you don't need your smile when I cut
your throat" - hmm , kubazzz 30/10/08 22:28
faktycznie, pomogło, nie zwróciłem na to uwagi...
ech..SM-S908
- No normalnie nie czytasz moich maili :) , Mcmumin 30/10/08 22:32
Przecież Ci to poprawnie sformatowałem:
<artykuly>
<artykul>
<tytul>jak zlozyc model?</tytul>
<baza>poradniki</baza>
<id>10254672</id>
</artykul>
</artykuly>
albo JSON:
{
" artykuly" : {
"artykul" : [
{
"tytul" : "jak zlozyc model?",
"baza" : "poradniki",
"id" : "10254672"
},
{
"tytul" : "jak zlozyc model 2?",
"baza" : "poradniki cioci Weroniki",
"id" : "10255454"
}
]
}
}- czytalem, czytalem , kubazzz 30/10/08 22:43
mea culpa..
po prostu to jest tak, ze ja jestem apacz
a pacze, a pacze ,a nic nie widze ...
:/SM-S908
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|