Как читать тег xml, если в php используется другой тег?

Я пытаюсь прочитать тег xml, но есть одна проблема. Если внутри тега есть другой тег, я получаю только его атрибут.

Пример: У меня есть xml файл

    $myXMLData =
    "<?xml version='1.0' encoding='UTF-8'?>
<note>
<to><hello role='admin'/>Hello World</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
echo "<pre>";
print_r($xml);

Выход:

    SimpleXMLElement Object
(
    [to] => SimpleXMLElement Object
        (
            [hello] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [role] => admin
                        )

                )

        )

    [from] => Jani
    [heading] => Reminder
    [body] => Don't forget me this weekend!
)

Но я хочу заголовок "Hello World". У кого-нибудь есть решение для этого?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете получить значение элемента SimpleXML как объекта, вместо этого вы должны преобразовать его в строку (или int, или ...):

$myXMLData = "<title><anchor id='page1' role='first'/>Xyz Title</title>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
echo "<pre>";
echo (string)$xml;

Выход:

Xyz Title

Что касается вашего измененного вопроса, просто

echo (string)$xml->to;

Выход:

Hello world

Вам не нужен (string)

MonkeyZeus 27.09.2018 14:56

@MonkeyZeus, вы правы для echo. Во многих других случаях вы это делаете, поэтому я предпочитаю использовать его постоянно.

Nick 27.09.2018 14:59

Спасибо, но у меня есть XML-данные этого типа <chapter label = "Chapter 1" id = "ch1"> <title> <anchor id = "page1" role = "first" /> Сердечно-сосудистая система </title> < toc role = "none"> </toc> </chapter>

Deepak saini 27.09.2018 15:02

спасибо @Nick, я обновил свой вопрос, есть идеи, как я могу это получить?

Deepak saini 27.09.2018 15:09

Другие вопросы по теме