我正在研究这个项目,它基本上从xml文件中读取数据并将数据插入/更新到mysql数据库中。
以下是sample.xml文件:
<table name="movies">
<column name="movie_name">Titanic</column>
<column name="dvd">40</column>
<column name="blueray">5</column>
<column name="netflix">4</column>
<column name="amazon">3</column>
</table>
我将问题分解为: 1)从XML文件中获取值。 2)将提取的值插入mysql数据库。
我能够将值插入数据库,但困难的部分是从xml获取值让我发疯。
这是我的数据库表:
数据库名称:电影 专栏:movie_name,dvd,blueray,netflix,amazon
以下是我尝试从xml中提取属性值的代码。
<?php
$source = 'sample.xml';
// load as string
$xml = new SimpleXMLElement($source,null,true);
$movie_name= $xml->column->attributes()->name;
echo $movie_name. "\n";
?>
输出: 而不是获得电影的名称&#34;泰坦尼克号&#34;,我得到&#34; movie_name&#34;。
答案 0 :(得分:1)
您正好回复了您所要求的内容。 attributes()查看属性,name为您提供属性的名称。您可以通过这样做获得名称
$movieName = (string)$xml->column;
如果您想要所有值,可以遍历列
foreach($xml->column as $xColumn) {
$value = (string)$xColumn;
}
答案 1 :(得分:0)
name属性IS movie_name的值。 Titanic是Column元素的值,其name属性具有值。
答案 2 :(得分:0)
您可以使用此查询:
<?php
$source = 'sample.xml';
// load as string
$xml = new SimpleXMLElement($source,null,true);
$movie_name= $xml->column->attributes()->name;
//echo $movie_name. "\n";
$table = $xml->attributes()->name;
$columns ="";
foreach($xml as $column){
$columns .= (string)$column->attributes()->name .",";
}
$columns = rtrim($columns, ",");
$values ="";
foreach($xml->column as $value){
$values .= $value ."," ;
}
$values = rtrim($values, ",");
$query = " INSERTO INTO $table ( $columns ) VALUES ( $values ) ";
echo $query;
?>