我想通过php的XML选择的id节点找到库存计数。你能帮我更新我的代码吗? (例如,我想获得id = 122的股票数量)
$myproduct=<<<XML
<product>
<id>121</id>
<name>product 1</name>
<stock>14</stock>
</product>
<product>
<id>122</id>
<name>product 2</name>
<stock>8</stock>
</product>
<product>
<id>123</id>
<name>product 3</name>
<stock>26</stock>
</product>
XML;
$xml=simplexml_load_string($myproduct);
print_r($xml->stock);
答案 0 :(得分:0)
您的xml无效,因为它包含多个根节点<product>
例如,如果您的root是<products>
,则可以使用foreach
循环遍历$xml->product
。
循环中的变量$product
的类型为SimpleXMLElement,您可以将其强制转换为字符串以获取值。
$myproduct=<<<XML
<products>
<product>
<id>121</id>
<name>product 1</name>
<stock>14</stock>
</product>
<product>
<id>122</id>
<name>product 2</name>
<stock>8</stock>
</product>
<product>
<id>123</id>
<name>product 3</name>
<stock>26</stock>
</product>
</products>
XML;
$xml=simplexml_load_string($myproduct);
foreach($xml->product as $product) {
if ((string)$product->id === "122") {
echo $product->stock;
}
}
或使用xpath表达式:
$product = $xml->xpath("/products/product[id='122']");
echo $product[0]->stock;
那会给你:
8