HI Я использую ajax для веб-сайта, на котором отображаются доступные курсы, у меня проблема, когда я читаю xml (у которого есть данные о курсах), получая значение node (название курса) по сравнению с моим вводом (inout name), если он равен, я показываю текст (описание курса). теперь я отслеживаю его получение правильного имени курса (в xml файле), но при сравнении его с именем входного курса его совсем не сравнивают. В одной точке я загрузил xml файл и повторил его:
$doc->load('data/ICT.xml');
echo"$doc";
Это дает мне ошибку
Допустимая фатальная ошибка: объект класса DOMDocument не может быть преобразован в строку в /home/students/....../www/htdocs/client/unit_details.php в строке 23
поэтому я понял из этого, что объект xml dom должен быть преобразован в строку, чтобы я мог получить требуемые данные и использовать их, правда ли это? если это возможно, кто-нибудь скажет мне, как это сделать, пожалуйста (как и любые функции и т.д.) заранее: -)
Объект DOMDocument
не может использоваться как строка.
Вот как вы бы отображали объект DOMDocument
как строку XML:
echo $doc->saveXML();
DOMDocument
имеет метод SaveHTML()
, который предназначен для того, чтобы делать именно то, что вам нужно.
Вы можете отобразить весь документ:
$doc->saveHTML();
Или просто определенный node:
$doc->saveHTML( $bodyNode);
DOMDocumnet
также содержит несколько вариантов улучшения способа печати XML, например:
Попробуйте следующее:
$xml = $doc->saveXML($doc->documentElement);
Вы можете использовать Type casting
$doc->load('data/ICT.xml');
$doc2=(string)$doc;
echo $doc2;
Или Вы можете использовать функцию PHP
strval();
Эта функция возвращает строковые значения переданного параметра.
DOMDocument
реализует API DOM - доступ к узлам с помощью таких вещей, какgetElementById(), getElementsByClassName()
и т. Д., И использованиеsaveXML()
для записи строки.