PHP - 来自指定标记的xml数据作为sql条目

时间:2015-01-26 19:19:16

标签: php mysql xml export

我有一些带有一些数据的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>some@email.com</email>
    </author>
    <thr:total>0</thr:total>
</entry>

现在我想从这个标签获取数据并将其作为单独的条目放到sql表中。 在MySQL中,我得到了'date','title'和'content'列的表格,只有这个标签需要把数据放到mysql中。

我只需要知道如何从XML导入数据并在PHP中使用。没什么。

请与我分享一些提示。

2 个答案:

答案 0 :(得分:0)

您可以使用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

答案 1 :(得分: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.'")');

}

?>