使用 PHP 生成两个 XML 文件


Generate two XML files using PHP

我目前使用以下PHP代码从HTML页面上的表单输入生成XML文件(我正在使用$_POST):

$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save('../application/'.$filefname.$filesname.'_'.date("Y-m-d").'.xml');

但是,我想生成两个XML文件,每个文件都有不同的信息。 我需要做一些事情,比如有两个变量吗?例如。 $xml1$xml2$doc1$doc2这样吗?

$doc1 = new DOMDocument('1.0');
$doc1->formatOutput = true;
$doc1->preserveWhiteSpace = true;
$doc1->loadXML($xml1->asXML(), LIBXML_NOBLANKS);
$doc1->save('../application/'.$filefname.$filesname.'_'.date("Y-m-d").'.xml');
$doc2 = new DOMDocument('1.0');
$doc2->formatOutput = true;
$doc2->preserveWhiteSpace = true;
$doc2->loadXML($xml2->asXML(), LIBXML_NOBLANKS);
$doc2->save('../application/'.$filefname.$filesname.'_'.date("Y-m-d").'.xml');

例如。在线表格中输入了两个电子邮件地址和两个姓名,我希望每个人的详细信息都在一个单独的文件中。客户 1 的姓名和电子邮件(cust1.xml)和客户 2 的姓名和电子邮件(cust2.xml

您可以重用 $doc 变量。一旦您为其分配新DOMDocument$doc变量就会指向新实例。

// $doc points to instance #1 of DOMDocument
$doc = new DOMDocument('1.0'); 
...
// $doc points to instance #2 of DOMDocument
$doc = new DOMDocument('1.0');

这同样适用于所有引用类型,如对象。

与其复制代码,不如创建一个函数

function createDocument($xml) {
    $doc = new DOMDocument('1.0');
    $doc->formatOutput = true;
    $doc->preserveWhiteSpace = true;
    $doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
    $doc->save('../application/'.$filefname.$filesname.'_'.date("Y-m-d").'.xml');
}

应始终避免代码重复。参见干原则。