Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему simplexml_load_file не видит правильно xml?
 
 автор: maxam   (06.06.2012 в 11:34)   письмо автору
 
 

Использую функцию simplexml_load_file:
$xml = simplexml_load_file('./books.xml');
$books = $xml->books;

Сам xml:
<?xml version="1.0" encoding="utf-8"?>
<books>
    <book>
        <name language="ru">Название</name>
        <desc language="ru">Описание</desc>
    </book>
</books>

При выводе:
echo'<pre>';
print_r($xml);
echo'</pre>';
он не видит language="ru"! Почему?

  Ответить  
 
 автор: elenaki   (06.06.2012 в 12:21)   письмо автору
 
   для: maxam   (06.06.2012 в 11:34)
 

м.б. language - зарезервированное слово? используйте lang

я не видела класс, которым вы читаете XML, возможно, он вообще не видит параметры.
другие параметры если подставить, читает?

  Ответить  
 
 автор: Maxam   (06.06.2012 в 12:37)   письмо автору
 
   для: elenaki   (06.06.2012 в 12:21)
 

Нет, любой не показывает!

  Ответить  
 
 автор: confirm   (06.06.2012 в 12:39)   письмо автору
 
   для: maxam   (06.06.2012 в 11:34)
 

Атрибуты объекта и не будут показываться, для этого служит функция attributes().

  Ответить  
 
 автор: Maxam   (06.06.2012 в 21:58)   письмо автору
 
   для: confirm   (06.06.2012 в 12:39)
 

Если прописать
<?xml version="1.0" encoding="utf-8"?> 
<books> 
    <book> 
        <name name="Название" language="ru"/>
        <desc desc="Описание" language="ru"/>
    </book> 
</books>
показывает!

  Ответить  
 
 автор: confirm   (06.06.2012 в 22:04)   письмо автору
 
   для: Maxam   (06.06.2012 в 21:58)
 

У вас иначе объекты описаны в данном случае, и учтите, что для объекта "name" (неудачное имя в данном случае) name и language, это атрибуты его, и допуск к ним функцией, которую я указывал ранее.

  Ответить  
 
 автор: Maxam   (06.06.2012 в 23:03)   письмо автору
 
   для: confirm   (06.06.2012 в 22:04)
 

Что, я не могу использовать любые свои варианты названий?

  Ответить  
 
 автор: confirm   (06.06.2012 в 23:29)   письмо автору
 
   для: Maxam   (06.06.2012 в 23:03)
 

Ну как вам сказать. Представьте, что вы на странице помещаете такой элемент формы:
<input name="input" value="input" />

Само по себе это не страшно, но это путаница имени тега объекта со значением атрибута name этого же объекта. И эта путаница, вполне, может оказать вам неприятные последствия, например, в javascript сценариях. У вас вообще - и имя объекта, и один из его атрибутов равны. Вот когда обожжетесь, тогда поймете, что так делать нежелательно.

  Ответить  
 
 автор: Maxam   (07.06.2012 в 12:09)   письмо автору
 
   для: confirm   (06.06.2012 в 23:29)
 

Понял. Учту.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования