0

我有一个购物目录,每行末尾都有一个按钮,用于将商品添加到购物车。每次用户按下添加按钮时,我需要将“保留数量(IqtyOH)”增加一。我需要根据该修改xml文档。

这是我的 xml 文件,只是为了得到和想法。

<items>
 <item>
  <IId>1</IId>
  <Iname>samsung</Iname>
  <Iprice>360</Iprice>
  <IqtyAv>9</IqtyAv>
  <IqtyOH>0</IqtyOH>
  <IqtySold>0</IqtySold>
  <ItemDesc>Galaxy</ItemDesc>
 </item>
 <item>
  <IId>2</IId>
  <Iname>sony</Iname>
  <Iprice>1200</Iprice>
  <IqtyAv>12</IqtyAv>    
  <IqtyOH>0</IqtyOH>
  <IqtySold>0</IqtySold>
  <ItemDesc>vaio</ItemDesc>
 </item>
</items>

我正在尝试使用 xpath 从 xml 文件中检索信息,但它没有用。出了点问题。这是我正在处理的代码。

$dom = new DOMDocument;
$dom->loadXML(file_get_contents($xmlFile));

$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//item[IID='$IId']/IqtyOH");
$node  = $nodes->item(0)->nodeValue;
$node++;
$node->nodeValue = $node;
$dom->saveXML();
4

1 回答 1

2

我认为您的代码中有两个小错误。在 XPATH

$nodes = $xpath->query("//item[IID='$IId']/IqtyOH");

IID元素应该IId是. 所以你得到:

$nodes = $xpath->query("//item[IId='$IId']/IqtyOH");

其次$node是你找到的节点的值,不是对它的引用,所以你不能调用nodeValue它。相反,您可以这样做:

$node = $nodes->item(0)->nodeValue;
$node++;
$nodes->item(0)->nodeValue =$node;
于 2013-11-02T08:58:26.803 回答