我只想选择指定的仓库来更新库存。 即我只想要 99,但每件商品都有不同数量的仓库,所以下面的代码仅适用于 99 行的 3 个仓库:
$quantity_calc = $this_product->stock[2];
下面是示例 xml:
<product sku="123546" supplier="BOSCH" price="1.71">
<stock warehouse="SAND">2.00</stock>
<stock warehouse="44">2.00</stock>
<stock warehouse="55">4.00</stock>
<stock warehouse="77">2.00</stock>
<stock warehouse="88">2.00</stock>
<stock warehouse="97">2.00</stock>
<stock warehouse="99">2.00</stock>
<stock warehouse="33">2.00</stock>
</product>
和print_r($this_产品->库存(;
[@attributes] => Array
(
[warehouse] => SAND
)
[0] => 2.00
[1] => 2.00
[2] => 4.00
[3] => 2.00
[4] => 2.00
[5] => 2.00
[6] => 2.00
[7] => 2.00
)
要获取 DOM 的一部分,请使用 Xpath 表达式。SimpleXMLElement::xpath()
提供对它的访问:
$product = new SimpleXMLElement($xml);
var_dump(
(string)$product->xpath('//stock[@warehouse=99]')[0]
);
DOM 扩展本身具有 DOMXpath 类:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
var_dump(
$xpath->evaluate('string(//stock[@warehouse=99])')
);