我有一些带有一些数据的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中使用。没什么。
请与我分享一些提示。
答案 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.'")');
}
?>