使用PHP生成两个XML文件

时间:2016-02-08 23:48:53

标签: php xml

我目前使用以下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');

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

1 个答案:

答案 0 :(得分:0)

您可以重复使用$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');
}

您应始终避免代码重复。见DRY原则。