PHP var_dump XML из simplexml_load_string

0

У меня есть XML-объект, созданный simplexml_load_string из следующего XML:

<?xml version="1.0" encoding="UTF-8"?>
<Website hasRead="true" hasWrite="true" key="managementui" terminalUserPin="" username="admin">
  <Section key="organisation">
    <Controller key="Sites">
      <Function hasRead="false" hasWrite="false" key="estateLayout"/>  
    </Controller>
  </Section>
  <Section hasRead="false" hasWrite="false" key="settings"/>
</Website>

Сохраняется в переменной $xml

Когда я пытаюсь:

$xmlkey = $xml['key'];
var_dump($xmlkey);

Я ожидаю увидеть строку 'managementui' но вместо этого получаю исключение. Журнал ошибок даже не показывает ничего. Что здесь происходит?

Просто пытаюсь изучить PHP после многих лет опыта Java. Когда люди говорят, что PHP "легкий", это должно быть какое-то странное использование слова "легко", о котором я раньше не знал :)

EDIT Теперь, извлекая неприятный бит кода в меньший php файл и запустив его из командной строки, кажется, что нет ничего плохого. Результат var_dump дает ожидаемый результат. Проблема в том, что он все еще вызывает ошибку в производственном коде. Есть ли ожидаемая разница в поведении между запуском на commnad-line и в Интернете (на apache)?

  • 0
    Вы должны сначала проанализировать XML для массива ... см. php.net/manual/en/book.simplexml.php
  • 0
    $ xml ['key'] по-прежнему возвращает SimpleXMLElement ... ideone.com/wgb7Rp
Показать ещё 2 комментария
Теги:
echo
var-dump

1 ответ

0

Работает на меня.

Вы загружаете xml следующим образом:

$string = '<?xml version="1.0" encoding="UTF-8"?>
<Website hasRead="true" hasWrite="true" key="managementui" terminalUserPin="" username="admin">
  <Section key="organisation">
    <Controller key="Sites">
      <Function hasRead="false" hasWrite="false" key="estateLayout"/>  
    </Controller>
  </Section>
  <Section hasRead="false" hasWrite="false" key="settings"/>
</Website>';

$xml = simplexml_load_string($string);

echo $xml['key']; // managementui

Ещё вопросы

Сообщество Overcoder
Наверх
Меню