Я боюсь, что это действительно глупый вопрос, но я действительно застрял после попытки загрузки комбинаций в течение последних 2 часов. Я пытаюсь вытащить NAME из XML-файла
Мой XML-файл:
<?xml version="1.0"?> <userdata> <name>John</name> </userdata>
Мой php:
$doc = new DOMDocument(); $doc -> load( "thefile.xml" ); $thename = $doc -> getElementsByTagName( "name" ); $myname= $thename -> getElementsByTagName("name") -> item(0) -> nodeValue;
Ошибка:
Catchable fatal error: Object of class DOMElement could not be converted to string in phpreader.php
я пытался
$myname= $thename -> getElementsByTagName("name") -> item(0) ; $myname= $doc -> getElementsByTagName("name") -> item(0) -> nodeValue; $myname= $doc -> getElementsByTagName("name") -> item(0) ;
но все терпят неудачу. Думаю, я пробовал почти каждую комбинацию, кроме правильной 🙁
Вы можете захотеть $myname = $thename->item(0)->nodeValue
. $ thename уже является NodeList всех узлов, чей тег является «именем» – вам нужен первый элемент этих ( ->item(0)
), и вы хотите получить значение узла ( ->nodeValue
). $thename
должно быть более подходящим именем $names
, и вы увидите, почему $names->item(0)->nodeValue
имеет смысл семантически.
Это работает для меня.
Этот запуск кода:
<?php $xml = <<<XML <?xml version="1.0"?> <userdata> <name>John</name> </userdata> XML; $doc = new DOMDocument(); $doc->loadXML($xml); $names = $doc->firstChild->getElementsByTagName("name"); $myname = $names->item(0)->nodeValue; var_dump($myname);