PHP-从XML文件中的特定子元素获取数据

PHP-从XML文件中的特定子元素获取数据,php,xml,simplexml,Php,Xml,Simplexml,我是一个PHP/开发新手,我还没有找到一个解决这个问题的教程 我有一个来自API的XML文件,其中包含在线商店的产品信息。每个物理产品都有多个“样式”,需要在同一页上列出。我想用他们的身份证号码 下面是我的提要的简化版本: <products> <product id="001"> <name>Shirt 1 - Women's</name> <price>12.00</price> <co

我是一个PHP/开发新手,我还没有找到一个解决这个问题的教程

我有一个来自API的XML文件,其中包含在线商店的产品信息。每个物理产品都有多个“样式”,需要在同一页上列出。我想用他们的身份证号码

下面是我的提要的简化版本:

<products>
  <product id="001">
    <name>Shirt 1 - Women's</name>
    <price>12.00</price>
    <color>blue</color>
  </product>

  <product id="002">
    <name>Shirt 1 - Men's</name>
    <price>12.00</price>
    <color>red</color>
  </product>
   ...
  <product id="023">
    <name>Shirt 12 - Women's</name>
    <price>15.00</price>
    <color>purple</color>
  </product>

  <product id="024">
    <name>Shirt 12 - Men's</name>
    <price>15.00</price>
    <color>yellow</color>
  </product>

</products>
我不知道我会怎么做两个或更多。如果可以用simplexml完成,那就太好了,因为我最熟悉它。但是,如果我需要使用不同的XML解析方法,我也愿意这样做,但是它需要与wordpress兼容。

使用以下方法会更容易:


这还演示了如何获取ID属性。

有许多方法可以解决此问题,其中之一是您可以使用函数对多个ID值进行测试:

$ids = array('023', '024');

foreach ($product->product as $product) {
    if (in_array($product['id'], $ids)) { 
        //display data using some code
    }
}
另请参见相关问题:

我之所以选择它,是因为您也可以在其他情况下使用它,同时也表明您的问题与XML无关,而与PHP本身有关

我希望这对你有帮助。

你是说这样吗

foreach ($product->product as $product) {
if ($product['id'] == '023'||$product['id'] == '024') { 
  //display data using some code
  }
}
另外,不确定为什么每个id都有不同的php页面,如果是产品页面,那么它应该是动态的

shirt.php?id=12 

您能为023添加其他“如果”吗?您能告诉我如何仅使用
中的id号来执行此操作吗?不幸的是,我的XML文件并没有像我的示例那样精确地命名每个产品。此外,产品id号将用作我用于显示每个产品样式的
  • 标记的相应id号。谢谢。这真的很有帮助。
    $ids = array('023', '024');
    
    foreach ($product->product as $product) {
        if (in_array($product['id'], $ids)) { 
            //display data using some code
        }
    }
    
    foreach ($product->product as $product) {
    if ($product['id'] == '023'||$product['id'] == '024') { 
      //display data using some code
      }
    }
    
    shirt.php?id=12