|
| |
|
|
| |
для: ZuArt
(06.03.2007 в 09:47)
| | | согласимся!!! | |
| |
|
|
| |
|
|
| |
для: Lulu
(06.03.2007 в 09:41)
| | | Кстать, а логично ли помещать мыло как подраздел даты рождения??? =) может логичнее вывести этот параметр на один уровень с ФИО и ДР, или вообще создать отдельную ветку на уровне ФИО? Но это так - предложение по структуризации самого "хранилища" =)
...
</name>
<contacts>
<mail>...</mail>
<phone>...</phone>
...
</contacts>
|
| |
| |
|
|
| |
|
|
| |
для: Саня
(06.03.2007 в 00:28)
| | | Огромное спасибо за помощь!!!!! Буду учиться. | |
| |
|
|
| |
|
|
| |
для: Lulu
(05.03.2007 в 23:40)
| | | К ошибке "failed to open stream: No such file or directory" может привести опечатка в имени файла. Проследите, чтобы в скрипте имя открываемого файла совпадало с именем существующего файла.
> $xmlstr=join(' ',file('person.xml'));
Так делают только извращенцы. Хотя нет... извращенцы делают так:
<?
$file = file("some_file.txt");
$buffer = "";
for ( $i = 0; $i < count($file); $i++ ) {
$buffer .= $file[$i];
}
| Так как вы только учитесь, вам это простительно. Однако запомните: чтобы прочитать весь файл в переменную можно и нужно пользоваться функцией file_get_contents(), которая работает значительно быстрее тех двух ужасных конструкций.
И ещё, domxml в пятой версии php нету. Вместо него обычный DOM. Пример:
<?
$xmlstr = file_get_contents('person.xml');
$dom = DOMDocument::loadXML($xmlstr);
$person = $dom->GetElementsByTagName("person");
for ( $i = 0; $i < $person->length; $i++ ) {
$child = $person->item($i)->childNodes;
$name = $child->item(1)->childNodes;
$birth = $child->item(3)->childNodes;
print "Имя: ".
$name->item(1)->nodeValue." ".
$name->item(3)->nodeValue."<br/>".
"Дата рождения: ".
$birth->item(1)->nodeValue."/".
$birth->item(3)->nodeValue."/".
$birth->item(5)->nodeValue."<br/>".
"Email: ".$birth->item(7)->nodeValue."<br/><br/>";
}
| Этим скриптом я разобрал ваш XML-файл.
Кстати, у вас пропущен закрывающий тег </birth>:
...
<birth>
<day>03</day>
<month>05</month>
<year>90</year>
<email>bob@ngs.ru</email>
в этом месте пропущен тег </birth>
</person>
</collection>
|
| |
| |
|
|
| |
|
|
| |
для: bronenos
(05.03.2007 в 23:35)
| | | я пока сама не пишу скрипты, а только проверяю из учебника, смотрю как работают | |
| |
|
|
| |
|
|
| |
для: Саня
(05.03.2007 в 23:34)
| | | PHP5 стоит, а файлы в одной папке лежат | |
| |
|
|
| |
|
|
| |
для: Lulu
(05.03.2007 в 23:25)
| | | не может найти
зы, мне кажется удобнее использовать file get contents | |
| |
|
|
| |
|
|
| |
для: Lulu
(05.03.2007 в 23:25)
| | | В данном случае XML-файл должен лежать в папке со скриптом.
И ещё, PHP у вас какой версии? | |
| |
|
|
| |
|
|
| | Помогите, плиз, вопрос вот в чем: настроила Apache и PHP по инструкции, еще добавила модуль XML. Есть файл person.xml содержания:
<?xml version="1.0" encoding="utf-8"?>
<collection>
<person id="10">
<name>
<first>Nick</first>
<last>Petrov</last>
</name>
<birth>
<day>23</day>
<month>12</month>
<year>89</year>
<email>nick@ngs.ru</email>
</birth>
</person>
<person id="20">
<name>
<first>Bob</first>
<last>Ivanov</last>
</name>
<birth>
<day>03</day>
<month>05</month>
<year>90</year>
<email>bob@ngs.ru</email>
</person>
</collection>
и скрипт обрабатывающий этот файл x.php
<?php
$xmlstr=join(' ',file('person.xml'));
if(!$dom=domxml_open_mem($xmlstr)) {
echo "oshibka";
exit;
}
print_r($dom);
echo "<hr>";
$root=$dom->document_element();
print_r($root);
echo "<hr>";
?>
При запуске выдает ошибку:
Warning: file(person.xml) [function.file]: failed to open stream: No such file or directory in C:\www\Apache2.2\htdocs\x.php on line 2
Warning: join() [function.join]: Bad arguments. in C:\www\Apache2.2\htdocs\x.php on line 2
Fatal error: Call to undefined function domxml_open_mem() in C:\www\Apache2.2\htdocs\x.php on line 3
В чем причина??? почему он не считывает файл person.xml?? | |
| |
|
|
|