【发布时间】:2015-08-12 09:43:50
【问题描述】:
我在这里尝试使用 XMLSerializer 类将数据从 mysql 表转换为 xml 文件。我希望 xml 文件是这样的
为此,我需要将数字索引更改为“书”。目前我可以生成以下形式的数组:它具有数字索引,但出于我的目的,两个索引(0 和 1)都必须是'书'。
如何将两个数字索引都更改为“book”??
完整代码:
include('XMLSerializer/XML/Serializer.php');
$host='localhost';
$user='root';
$pass='';
$db='xmlserializer';
$dbh=new PDO("mysql:host=$host;dbname=$db",$user,$pass);
$sql='SELECT lname,fname FROM employee';
$sth=$dbh->prepare($sql);
$sth->execute();
$xml=array('library'=>array());
$i=0;
while($result=$sth->fetch(PDO::FETCH_ASSOC)){
array_push($xml['library'],$result);
}
print_r($xml);
$serializer=new XML_Serializer();
$result=$serializer->serialize($xml);
if($result===true){
file_put_contents('myxml.xml',$serializer->getSerializedData());
}
【问题讨论】:
-
如果您的 2 个键变为“book”,它们将被覆盖...您希望像 ["book1"], ["book2"] 这样的键吗?或者你想要多一个维度是 ["library"]["book"][0] ?
-
我可以管理您的建议,但要获得所需的 xml 格式,它们都必须是 book。
-
问题是你不能有像
array("book" => array(...), "book" => array(...))这样的数组,所以你最好创建单独的数组,每本书一个,然后为每个数组生成你的xml...跨度> -
我知道他们会覆盖每一个。但仍然无法找到替代方法:(
-
正如我所说,您必须分别生成每本书的 xml,或者您必须按照@ericMartinez 的建议更改层次结构...
标签: php mysql arrays xml xml-serialization