mysql — данные xml из указанных тегов как записи sql

У меня есть XML-файл с некоторыми данными. Мне нужно положить в таблицу данных SQL из этого файла, но только из указанных тегов в качестве отдельной записи MySQL.

Это пример данных XML

<entry>
<published>2014-12-24T00:03:00.002-08:00</published>
<updated>2014-12-24T00:04:26.884-08:00</updated>
<title type='text'>Article title</title>
<category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/g/2005#kind'/>
<content type='html'>Here content data</content>
<author>
<name>Author name</name>
<uri>http://www.example.com</uri>
<email>[email protected]</email>
</author>
<thr:total>0</thr:total>
</entry>

Теперь я хочу взять данные из этих тегов и поместить в таблицу SQL в качестве отдельной записи.
В MySQL я получил таблицу со столбцами «date», «title» и «content», и только из этих тегов мне нужно поместить данные в mysql.

Мне просто нужно знать, как импортировать данные из XML и использовать в PHP. Ничего более.

Пожалуйста, поделитесь некоторыми советами для меня.

1

Решение

Вы можете использовать функцию xml_parse_into_struct (), которая будет анализировать данные из вашего XML-документа в пригодный для использования массив PHP.

<?php
$xmlfile = 'test.xml';
$xmlparser = xml_parser_create();

$fp = fopen($xmlfile, 'r');
$xmldata = fread($fp, 4096);

xml_parse_into_struct($xmlparser,$xmldata,$values);

xml_parser_free($xmlparser);
print_r($values);
?>

Вам нужно будет изменить код для ваших конкретных потребностей.

Источник: http://www.w3schools.com/php/func_xml_parse_into_struct.asp

0

Другие решения

Это правильный код для того, что мне нужно.

<?php

$xmlurl = 'file.xml';

$dom = new DOMDocument();
$dom->load($xmlurl);

$records = $dom->getElementsByTagName('entry');

foreach($records as $record) {

$dates = $record-> getElementsByTagName('published');
$date = $dates->item(0)->nodeValue;
$date = strtotime($date);

$titles = $record-> getElementsByTagName('title');
$title = $titles->item(0)->nodeValue;

$contents = $record-> getElementsByTagName('content');
$content = $descs->item(0)->nodeValue;

safe_query('INSERT INTO article (date,title,content) VALUES ("'.$date.'","'.$title.'","'.$content.'")');

}

?>
0

По вопросам рекламы [email protected]