Upload xml to php

Работа с XML средствами PHP

Давайте начнем с самого простого: загрузки и выгрузки XML-документа с использованием DOM. Основной класс, который мы будем использовать, это DOMDocument. Через него можно создавать новые документы, сохранять их, а также загружать существующие.

 // Создаём XML-документ версии 1.0 с кодировкой utf-8 $dom = new DOMDocument('1.0', 'utf-8'); // Текст XML-документа $strXML = 'ПервыйВторой'; // Загружаем XML-документ из строки $dom->loadXML($strXML); /* // Загружаем XML-документ из файла $dom->load('doc.xml'); // Убираем лишние пробелы и отступы $dom->preserveWhiteSpace = false; */ // Сохраняем XML-документ как строку и выводим в браузер $xml = $dom->saveXML(); echo htmlspecialchars($xml); // Сохраняем XML-документ в файл $dom->save('doc.xml'); ?>

Как получить список дочерних узлов

 // Создаём XML-документ $dom = new DOMDocument('1.0', 'utf-8'); // Текст XML-документа $strXML = 'ПервыйВторой'; // Загружаем XML-документ из строки $dom->loadXML($strXML); // Получаем корневой элемент $root = $dom->documentElement; // Получаем список дочерних узлов $childs = $root->childNodes; for ($i = 0; $i  $childs->length; $i++)  $child = $childs->item($i); // Выводим информацию об узле echo $child->nodeName . ' : ' . $child->nodeValue . '
'
; > ?>

Свойство nodeName содержит название элемента (в данном случае, item ), а nodeValue содержимое элемента (в данном случае, « Первый » и « Второй »).

Работа с атрибутами узлов

Давайте посмотрим, как получить значение атрибута узла, устанавить новое значение, создать и удалить атрибут:

 // Создаём XML-документ $dom = new DOMDocument('1.0', 'utf-8'); // Текст XML-документа $strXML = 'ПервыйВторойТретий'; // Загружаем XML-документ из строки $dom->loadXML($strXML); // Получаем корневой элемент $root = $dom->documentElement; // Первый дочерний элемент $first = $root->firstChild; // Следующий сестринский элемент $second = $first->nextSibling; // Последний дочерний элемент $third = $root->lastChild; // Выводим информацию о первом дочернем элементе echo 'Элемент ' . $first->nodeName . ', значение «' . $first->nodeValue . '», атрибут id'); // Устанавливаем атрибут id для второго дочернего элемента $second->setAttribute('id', 2); // Устанавливаем атрибут id для третьего дочернего элемента $attr = $dom->createAttribute('id'); $attr->value = 3; $third->appendChild($attr); // Удаляем атрибут id для третего дочернего элемента if ( $third->hasAttribute('id') ) $third->removeAttribute('id'); ?>

Создание XML-документа

 // Создаём XML-документ $dom = new DOMDocument('1.0', 'utf-8'); // Создаём корневой элемент $root = $dom->createElement('users'); $dom->appendChild($root); $users = array( array('id' => 1, 'name' => 'Николай Петров', 'email' => 'petrov.n@mail.ru'), array('id' => 2, 'name' => 'Петр Иванов', 'email' => 'ivanov.p@mail.ru'), array('id' => 3, 'name' => 'Сергей Смирнов', 'email' => 'smirnov.s@mail.ru') ); foreach ( $users as $value )  // Создаём узел $user = $dom->createElement('user'); // Добавляем дочерний элемент для $root->appendChild($user); // Устанавливаем атрибут id для узла $user->setAttribute('id', $value['id']); // Создаём узел с текстом внутри $name = $dom->createElement('name', $value['name']); // Добавляем дочерний элемент для $user->appendChild($name); // Создаём узел $email = $dom->createElement('email'); // Создаем текстовой узел $text = $dom->createTextNode($value['email']); // Создаем текстовой узел внутри конструкции // $text = $dom->createCDATASection($value['email']); // Добавляем текстовой узел для $email->appendChild($text); // Добавляем дочерний элемент для $user->appendChild($email); > // Сохраняем полученный XML-документ в файл $dom->save('users.xml'); ?>

Содержимое файла users.xml:

  Николай Петров petrov.n@mail.ru  Петр Иванов ivanov.p@mail.ru  Сергей Смирнов smirnov.s@mail.ru  

Извлечение данных из xml-документа

Давайте теперь извлечем данные из документа users.xml обратно в массив:

 // Создаём XML-документ $dom = new DOMDocument('1.0', 'utf-8'); // Загружаем XML-документ из файла $dom->load('users.xml'); // Получаем корневой элемент $root = $dom->documentElement; // Получаем дочерние элементы корневого элемента $users = $root->childNodes; // Перебираем полученные элементы foreach ($users as $user)  // Получаем значение атрибута id узла $id = $user->getAttribute('id'); // Получаем дочерние элементы узла $info = $user->childNodes; // Получаем значение узла $name = $info->item(0)->nodeValue; // Получаем значение узла $email = $info->item(1)->nodeValue; // Записываем данные в массив $array[] = array('id' => $id, 'name' => $name, 'email' => $email); > print_r($array); ?>
Array ( [0] => Array ( [id] => 1 [name] => Николай Петров [email] => petrov.n@mail.ru ) [1] => Array ( [id] => 2 [name] => Петр Иванов [email] => ivanov.p@mail.ru ) [2] => Array ( [id] => 3 [name] => Сергей Смирнов [email] => smirnov.s@mail.ru ) )

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • 1С:Предприятие (31)
  • API (29)
  • Bash (43)
  • CLI (99)
  • CMS (139)
  • CSS (50)
  • Frontend (75)
  • HTML (66)
  • JavaScript (150)
  • Laravel (72)
  • Linux (146)
  • MySQL (76)
  • PHP (125)
  • React.js (66)
  • SSH (27)
  • Ubuntu (68)
  • Web-разработка (509)
  • WordPress (73)
  • Yii2 (69)
  • БазаДанных (95)
  • Битрикс (66)
  • Блог (29)
  • Верстка (43)
  • ИнтернетМагаз… (84)
  • КаталогТоваров (87)
  • Класс (30)
  • Клиент (27)
  • Ключ (28)
  • Команда (68)
  • Компонент (60)
  • Конфигурация (62)
  • Корзина (32)
  • ЛокальнаяСеть (28)
  • Модуль (34)
  • Навигация (31)
  • Настройка (140)
  • ПанельУправле… (29)
  • Плагин (33)
  • Пользователь (26)
  • Практика (99)
  • Сервер (74)
  • Событие (27)
  • Теория (105)
  • Установка (66)
  • Файл (47)
  • Форма (58)
  • Фреймворк (192)
  • Функция (36)
  • ШаблонСайта (68)

Источник

Загрузка и выгрузка XML-документов через DOM

Загрузка и выгрузка XML-документов через DOM

В предыдущей статье мы рассмотрели стандарт DOM. И в этой статье мы с Вами будем его применять с использованием языка PHP. И начнём с самого простого: загрузки и выгрузки XML-документа с использованием DOM.

Основной класс, который мы будем использовать, это domDocument. Через него можно создавать новые документы, сохранять их, а также загружать существующие. Давайте с Вами разберём его на примере:

$dom = new domDocument(«1.0», «utf-8»); // Создаём XML-документ версии 1.0 с кодировкой utf-8
/* Текст XML-документа */
$xml ;
$dom->loadXML($xml); // Загружаем в объект domDocument XML-разметку
echo htmlspecialchars($dom->saveXML()); // Выгрузка в окно браузера XML-документа
echo «
«; // Переход на новую строку
$dom->save(«doc.xml»); // Сохраняем XML-документ в файл
$dom->load(«doc.xml»); // Выгружаем из файла XML-документ
echo htmlspecialchars($dom->saveXML()); // Выгрузка в окно браузере XML-документа (уже из файла)
?>

Главное, что Вы должны усвоить из данного кода — это то, как можно сохранять XML-документы в файл и загружать из этих файлов обратно в объект domDocument. Это самое основное, что постоянно используется практически везде, где вообще имеются XML-файлы.

Создано 23.04.2012 13:18:55

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 4 ):

    Ошибка в примере. ПХП код не в своей скорлупе,

    Михаил, а чем различаются версии xml документов?

    От этого зависит то, как он будет интерпретироваться.

    XML-документ создаётся, а в браузере выдаёт вот такое: Warning: DOMDocument::loadXML() [domdocument.loadxml]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xDD 0xEB 0xE5 0xEC in Entity, line: 3 in Z:\home\domain\www\load_xml.php on line 8 Warning: DOMDocument::load() [domdocument.load]: Start tag expected, ‘

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Источник

    Upload XML File to MySQLi in PHP

    upload xml file to mysql in php

    In this tutorial, we will create a Simple Upload XML File to MySQLi using PHP. This code can upload the XML file to a data to MySQLi when the user clicks the upload button. The code use simplexml_load_file to read a block of data from the uploaded XML file in order to break down in a loop and send it to the MySQLi server. This is a user-friendly kind of program feel free to modify it.

    We will be using XML as a markup language that utilizes in PHP as an HTML data. It is designed to store and transport data that can be manipulated within the local server.

    Getting Started:

    First, you have to download & install XAMPP or any local server that runs PHP scripts. Here’s the link for the XAMPP server https://www.apachefriends.org/index.html .

    And, this is the link for the bootstrap that I used for the layout design https://getbootstrap.com/ .

    Creating Database

    Open your database web server then create a database name in it db_xml , after that, click Import then locates the database file inside the folder of the application then click ok.

    upload xml file to mysql in php

    upload xml file to mysql in php

    Creating the database connection

    Open your any kind of text editor(notepad++, etc..). Then just copy/paste the code below then name it conn.php.

    Creating The Interface

    This is where we will create a simple form for our application. To create the forms simply copy and write it into your text editor, then save it as index.php.

            

    PHP - Simple Upload XML File to MySQLi


    Upload XML here

    ?>
    Firstname Lastname Address

    Creating the Main Function

    This code contains the main function of the application. This code will upload a xml file to database server when the button is clicked. To make this just copy and write these block of codes below inside the text editor, then save it as upload.php.

    0)< echo""; echo""; >else< $xml = simplexml_load_file(''.$file_name); foreach($xml->member as $member)< $firstname=$member->firstname; $lastname=$member->lastname; $address=$member->address; mysqli_query($conn, "INSERT INTO `member` VALUES('', '$firstname', '$lastname', '$address')") or die(mysqli_error()); > header('location:index.php'); > >else< echo""; echo""; > > ?>

    There you have it we successfully created Simple Upload XML File to MySQLi using PHP. I hope that this simple tutorial help you to what you are looking for. For more updates and tutorials just kindly visit this site. Enjoy Coding!

    Источник

    Читайте также:  Ошибка установки java windows 8
    Оцените статью