我使用以下代码创建了一个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?
答案 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;