#php #xml
#php #xml
Вопрос:
Ниже я добавляю свой php-код для xml. Я хочу каждый раз создавать новый тег teacher и сохранять данные в этом родительском теге. Но, к сожалению, новые данные заменяют то же самое в позиции имени тега.
$str = '<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="xsl.xsl"?><teachers></teachers>';
$xml = simplexml_load_string($str);
$name_info = htmlentities($name_info, ENT_COMPAT, 'UTF-8', false);
$class_info = htmlentities($class_info, ENT_COMPAT, 'UTF-8', false);
$section_info = htmlentities($section_info, ENT_COMPAT, 'UTF-8', false);
$school_info = htmlentities($school_info, ENT_COMPAT, 'UTF-8', false);
$session_info = htmlentities($session_info, ENT_COMPAT, 'UTF-8', false);
$mark_sheet = htmlentities($mark_sheet, ENT_COMPAT, 'UTF-8', false);
$semester_info = htmlentities($semester_info, ENT_COMPAT, 'UTF-8', false);
$teacher = $xml->addChild('teacher');
$teacher->addChild('teacher_name', $name_info);
$teacher->addChild('class_info', $class_info);
$teacher->addChild('section_info', $section_info);
$teacher->addChild('school_info', $school_info);
$teacher->addChild('session_info', $session_info);
$teacher->addChild('marksheet', $mark_sheet);
$teacher->addChild('semester_info', $semester_info);
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save('teacher.xml');
Ответ №1:
Вместо
$xml = simplexml_load_string($str);
напишите это
$xml = new SimpleXMLElement("teacher.xml", null, true);