Wielkie dzięki za szybką odpowiedź.
Trochę dodałem do pliku XML:
Kod
</P><P><?xml version="1.0" encoding="utf-8"?>
<notes>
<note>
<date id="123">2007-06-24</date>
<heading>qwerty</heading>
<body>asd</body>
<hello>
<today id="1">
<morning>hi</morning>
<afternoon>hi</afternoon>
<evening>hi</evening>
</today>
<today id="2">
<morning>hi</morning>
<afternoon>hi</afternoon>
<evening>hi</evening>
</today>
</hello>
</note>
<note>
<date id="456">2008-01-04</date>
<heading>qwerty2</heading>
<body>asd2</body>
</note>
</notes>
</P><P>
A plik php wygląda teraz tak:
$reader = new XMLReader();
$reader->open('oferty3.xml');
$q=0;
while($reader->read()) {
if($reader->nodeType == XMLReader::ELEMENT){
$name = $reader->name;
}
if($reader->nodeType == XMLReader::ELEMENT AND $reader->nodeType=="note"){
$name = $reader->name;
}
$id[$q] = $reader->getAttribute('id');
if($reader->nodeType == XMLReader::TEXT){
if($name=="date"){
echo "<li>".$name."(".$id[$q-1].") ".$reader->value."</li>"; }elseif($name=="heading" OR $name=="body"){
echo "<li>".$name." ".$reader->value."</li>"; }elseif($name=="hello"){
echo " - ".$name."(".$id[$q-1].") ".$reader->value."<br />"; }elseif($name=="today"){
echo " - - ".$name."(".$id[$q-1].") ".$reader->value."<br />"; }else{
echo " - - - ".$name." ".$reader->value."<br />"; }
}
if($reader->nodeType == XMLReader::END_ELEMENT AND $name=="note") {
}
$q++;
}
W wyniku dostaję coś takiego:
Cytat
date(123) 2007-06-24
heading qwerty
body asd
- - - morning hi
- - - afternoon hi
- - - evening hi
- - - morning hi
- - - afternoon hi
- - - evening hi
date(456) 2008-01-04
heading qwerty2
body asd2
mi jednak chodzi coś takiego:
Cytat
date(123) 2007-06-24
heading qwerty
body asd
- hello() hello-text
- - today(1) today-text
- - - morning hi
- - - afternoon hi
- - - evening hi
- - - morning hi
- - - afternoon hi
- - - evening hi
date(456) 2008-01-04
heading qwerty2
body asd2
Taki wynik dostaję tylko wtedy, gdy plik XML wygląda tak:
Kod
<?xml version="1.0" encoding="utf-8"?>
<notes>
<note>
<date id="123">2007-06-24</date>
<heading>qwerty</heading>
<body>asd</body>
<hello> hello-text
<today id="1"> today-text
<morning>hi</morning>
<afternoon>hi</afternoon>
<evening>hi</evening>
</today>
<today id="2">
<morning>hi</morning>
<afternoon>hi</afternoon>
<evening>hi</evening>
</today>
</hello>
</note>
<note>
<date id="456">2008-01-04</date>
<heading>qwerty2</heading>
<body>asd2</body>
</note>
</notes>
Jedyne co zostało dodane do pliku xml to "hello-text" i "today-text". Czemu w wyniku nie wypisuje mi tych linijek, jeżeli usunę "hello-text" i "today-text":
Cytat
- hello() hello-text
- - today(1) today-text