Php 查找选定的XML节点';孩子

Php 查找选定的XML节点';孩子,php,xml,Php,Xml,我想用php通过我的XML选择的id节点来查找库存数量。你能帮我更新代码吗?(例如,我想获取id=122的库存计数) $myproduct=您的xml无效,因为它包含多个根节点 例如,如果您的根目录是,则可以使用foreach在$xml->product中循环 循环中的变量$product为类型,您可以将其转换为字符串以获取值 $myproduct=<<<XML <products> <product> <id>121

我想用php通过我的XML选择的id节点来查找库存数量。你能帮我更新代码吗?(例如,我想获取id=122的库存计数)


$myproduct=您的xml无效,因为它包含多个根节点

例如,如果您的根目录是
,则可以使用
foreach
$xml->product
中循环

循环中的变量
$product
为类型,您可以将其转换为字符串以获取值

$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;
    }
}
这将给你:

八,


您的
$myproduct
不包含有效的XML文档。请显示您的实际代码或工作代表示例。您的xml没有根元素。如果您真的要使用这样的片段,请添加-
$xml=simplexml\u load\u字符串('.$myproduct'.')但是。。有没有更快的方法?需要8秒:/
$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;
    }
}
$product = $xml->xpath("/products/product[id='122']");
echo $product[0]->stock;