构建PHP XML字符串(使用addChild())并将其加载到其他页面上

时间:2014-08-01 14:19:22

标签: php xml node.js

我使用以下代码创建了一个XML字符串:

$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<product_list>
</product_list>
XML;

然后我将这个php文件包含到另一个php页面中,并使用addChild()插入一个新节点。

include 'xml.php';
$product = new SimpleXMLElement($xmlstr);
$newprod = $product->addChild("product");
$newprod->addChild("reference", $xml->product[$ref_prod]->reference);
...

但是当我尝试添加另一个“产品”节点(通过转到另一个页面)时,XML字符串将不会保留第一个“产品”节点。

如何在会话期间将XML字符串与添加的节点保持一致,并登陆其他页面?我是否必须创建一种会话变量?还是不变?还是上课? 或者是否有更简单的方法通过一批页面使用XML?

1 个答案:

答案 0 :(得分:0)

如果您转到新页面,整个过程将重新开始。如果你想操纵 相同的xml,你必须以某种方式将它(作为一个字符串或一个对象)从一个页面传递给另一个页面。

这里的简单内容很可能是将其存储在会话变量

你的包括看起来像s 这样:

// make the sessionaccessible
session_start();

// create xml if it does not exist
if(!$_SESSION['mysimplexml'])
{
   // create the string 
   $xmlstr = <<<XML
             <?xml version='1.0' standalone='yes'?>
             <product_list>
             </product_list>
             XML;   

   // parse it into the simplexml object
   $product = new SimpleXMLElement($xmlstr);

   // store in the session variable
   $_SESSION['mysimplexml'] = $product;
}

在您使用的所有页面中,包括您将

// get the xml from session
$product = $_SESSION['mysimplexml'];

// manipulate xml code code here

// store back into session
$_SESSION['mysimplexml'] = $product;