Извлечение данных из файла XML с использованием SimpleXml - PullRequest
1 голос
/ 03 мая 2019

Здравствуйте. Я пытаюсь извлечь данные из файла XML , используя SimpleXml , но он не извлекает тег LA 1 из display-name

ЭтоXML:

<tv generator-info-name="munich" generator-info-url="http://test.com">
    <channel id="254">
        <display-name lang="es">LA 1</display-name>
    </channel>
</tv>

Это мой код, который я использую для извлечения атрибута id из тега channel:

 $epg = simplexml_load_file("epg.xml") or die("Error: Cannot create object");
 foreach($epg->channel as $canal) {
     echo $canal[id];
 }

Ответы [ 2 ]

4 голосов
/ 03 мая 2019

Поскольку имя элемента, который вы хотите отобразить, содержит -, вам нужно будет вывести элемент с помощью (я приведу его к строке только для педантизма) ...

echo (string)$canal->{'display-name'};

Использование

$canal->display-name

будет интерпретироваться как $canal->display минус name.

0 голосов
/ 03 мая 2019

Вы можете использовать xml_parser_create

$xml = '<tv generator-info-name="munich" generator-info-url="http://test.com">
   <channel id="254">
    <display-name lang="es">LA 1</display-name>
   </channel>
</tv>';
$xml = new SimpleXMLElement($string);
echo $xml->xpath('//display-name')[0];
...