Как получить доступ к элементу вроде <game: title> с помощью simplexml? - PullRequest
2 голосов
/ 20 августа 2009

Я пытаюсь разобрать канал XML с SimpleXML, вот фрагмент дерева XML:

<item>
<game:name>Tetris</game:name> 
<game:desc>Way Cool Game</game:desc>
<size>5mb</size> 
</item>

Ну, на самом деле, я могу успешно получить доступ к размеру с помощью чего-то вроде этого: $item->size, но как мне получить значение? Конечно, я не могу так назвать: $item->game:name, и я не знаю, как называется «:». Это параметр, атрибут или что?

Спасибо за продвижение!

Ответы [ 3 ]

2 голосов
/ 20 августа 2009

Используйте функцию children () , чтобы получить дочерние элементы пространства имен.

$useThis = $xmlDoc->children("http://game.namespace/");

, учитывая, что http://game.namespace - это URL-адрес вашего пространства имен игры в корневом узле.

Вот объяснение / пример:

1 голос
/ 20 августа 2009

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

0 голосов
/ 22 августа 2009

Что касается получения значения SimpleXMLElement, вы просто приводите его к строке:

$size_value = (string)$item->size;
...