我有一个如下所示的 XML 文件。我必须使用 DOMDocument,所以不允许额外的类。(注意我已经简化了,真实文件在 saleItems 和 catalogItems 中都有很多条目):
<?xml version="1.0"?>
<catalog>
<saleItems count="3">
<item name="Xbox 360 Wired Controller" price="19" stock="50" salePrice="12" onSale="yes">
<image>Xbox360Controller.jpg</image>
<description>A wired controller for an Xbox 360 Game Console. Comes in either white or black.</description>
</item>
</saleItems>
<catalogItems count="12">
<item name="Dell Alienware Laptop 15 inch" price="2500" stock="200" salePrice="0" onSale="no">
<image>alienwareLaptop.jpg</image>
<description>sample description here</description>
</item>
</catalogItems>
</catalog>
我需要执行以下操作:
1)根据 name="" 属性找到要更新的节点(例如:我必须找到合适的项目的唯一数据是项目名称)
2)找到后,我需要编辑该项目的数量属性(减去1)
3)数量更新后,我需要将 XML 文件保存回服务器。
我对此束手无策,我很难让 $domDocument 合作。这是我到目前为止所拥有的,但它似乎根本无法正常工作。我可以获得库存并减去它,但我的更改没有保存到文件中。
foreach( $GLOBALS['catalogItems'] as $item ){
if( $item->getAttribute('name') == $itemName ){
// we have a match
$oldStock = $item->getAttribute("stock");
$item->setAttribute("stock", $oldStock + $modifier);
$dom->save('xml/catalog.xml');
}
}
非常感谢任何帮助!