📜  如何使用PHP动态生成 XML 文件?

📅  最后修改于: 2022-05-13 01:56:52.078000             🧑  作者: Mango

如何使用PHP动态生成 XML 文件?

可以使用PHP从数据库中生成文件,可以通过PHP中的静态或动态方法完成。可以直接调用静态方法——无需创建类的实例。在这里,我们将讨论如何动态创建 XML 文件。

  • 我们需要做的第一件事是从数据库中获取数据。为此,我们需要编写一个从表中获取所有详细信息的选择查询。
$result=mysqli_query($con, "Select * from Table_name"); 
  • 现在我们需要使用 DOMDocument 创建一个 XML 文件,我们将在其中指定版本。 DOMDocument 代表整个 HTML 或 XML 文档,作为文档树的根。
$xml = new DOMDocument("1.0");
  • 现在,我们将创建 XML 文档的元素。它将使用 createElement()函数创建新的元素节点。它创建了一个 DOMElement 类的新实例。这个节点不会出现在文档中,除非它被插入(例如) DOMNode::appendChild()
$fitness=$xml->createElement("users");
  • 到目前为止,我们已经创建了一个 XML 文件。因此,为了显示这一点,我们将使用一个 echo 标记,以 XML 格式显示文件中的数据。要保存 XML 文件,我们将使用 save 命令。
echo "".$xml->saveXML()."";

我们需要做的下一件事是从表中获取元素。
示例:如果一个表有两个元素,那么它应该创建两个 XML 元素。为此,我们将简单地使用一个 while 循环,其中将有 mysql_fetch_array函数从表中获取所有数据。
由于数据库连接到本地服务器,因此它不会在您的 ide 中运行,但是一旦您创建了数据库,它就会正常工作。要创建数据库,请按照下面提到的过程

  • 使用本地服务器在 mysql 中创建数据库适应度。
  • 然后创建一个表用户。
  • 然后添加列-uid、uname、email、密码、描述、角色、图片。

程序:

php
0){
$xml = new DOMDocument("1.0");
 
// It will format the output in xml format otherwise
// the output will be in a single row
$xml->formatOutput=true;
$fitness=$xml->createElement("users");
$xml->appendChild($fitness);
while($row=mysqli_fetch_array($result)){
    $user=$xml->createElement("user");
    $fitness->appendChild($user);
     
    $uid=$xml->createElement("uid", $row['uid']);
    $user->appendChild($uid);
     
    $uname=$xml->createElement("uname", $row['uname']);
    $user->appendChild($uname);
     
    $email=$xml->createElement("email", $row['email']);
    $user->appendChild($email);
     
    $password=$xml->createElement("password", $row['password']);
    $user->appendChild($password);
     
    $description=$xml->createElement("description", $row['description']);
    $user->appendChild($description);
     
    $role=$xml->createElement("role", $row['role']);
    $user->appendChild($role);
     
    $pic=$xml->createElement("pic", $row['pic']);
    $user->appendChild($pic);
     
}
echo "".$xml->saveXML()."";
$xml->save("report.xml");
}
else{
    echo "error";
}
}
?>


输出: