Ben fonksiyonları arasında nasıl SimpleXML ve dom güncellemeler XML etrafında başımı almak için çalışıyorlar. I sormak nedeni ben yazdım kod çalışır gibi görünüyor, ama bana küresel gibi bir şey ilan ve bu does neden olarak biraz karıştı im kalmadan olmasıdır.
Örneğin, ben bu (basitleştirilmiş) kodu vardır:
<?
foreach ($filenames as $filename) {
$xml = simplexml_load_file($filename);
updateXml($xml);
$xml->last_update = date('Y-m-d H:i:s');
$xml->asXML($filename);
}
function updateXml($xml) {
//...
if ($data = $xml->xpath('//data/info[product_id="' . $product_data['id'] . '"]')) {
$parent = $data[0]->xpath("parent::*");
$data = updateItem($parent[0], $product_data);
} else {
$product = addItem($xml->products, $product_data['id']);
$data = updateItem($product, $product_data);
}
}
function updateItem($parent, $product_data) {
$node = dom_import_simplexml($parent);
$dom = $node->ownerDocument;
$product = $dom->createElement('product');
$node->appendChild($product);
$item = $dom->createElement('id', $product_data['id']);
$product->appendChild($item);
$item = $dom->createElement('name', $product_data['name']);
$product->appendChild($item);
$item = $dom->createElement('url');
$product->appendChild($item);
$cdata = $dom->createCDATASection($product_data['url']);
$item->appendChild($cdata);
$item = $dom->createElement('price', $product_data['price']);
$product->appendChild($item);
return $node;
}
?>
Bana XML küresel olarak ilan gerek kalmadan fonksiyonları arasında güncellenmektedir anlamanıza yardım edebilir misiniz? Ben çalışır bir şey sormak garip görünüyor biliyorum, ama ben :-) etrafında başımı almak gerekiyor
Teşekkürler