Php 在Foreach循环中的XPath结果上运行XPath

Php 在Foreach循环中的XPath结果上运行XPath,php,xml,xpath,Php,Xml,Xpath,我正在从事一个项目,该项目的数据源如下: <?xml version="1.0" encoding="UTF-8"?> <producten> <product> <sku><![CDATA[75100192B]]></sku> <price><![CDATA[349.00]]></price> <old_price><![CDATA[499.

我正在从事一个项目,该项目的数据源如下:

<?xml version="1.0" encoding="UTF-8"?>
<producten>
  <product>
    <sku><![CDATA[75100192B]]></sku>
    <price><![CDATA[349.00]]></price>
    <old_price><![CDATA[499.00]]></old_price>
    <in_stock><![CDATA[1]]></in_stock>
    <delivery_time><![CDATA[1 - 2 werkdagen]]></delivery_time>
    <manufacturer><![CDATA[Kids River]]></manufacturer>
    <name><![CDATA[Kids River Urban Stroller 3 in 1 Black / Grey  Black Frame]]></name>
    <description><![CDATA[KidsRiver Urban Stroller]]></description>
    <url><![CDATA[http://www.url.com/]]></url>
    <categorie><![CDATA[Kinderwagens]]></categorie>
    <subcategorie><![CDATA[Kinderwagen]]></subcategorie>
    <model><![CDATA[Kids River Urban]]></model>
    <collectiejaar><![CDATA[2011]]></collectiejaar>
    <shipping_price><![CDATA[0.00]]></shipping_price>
    <image><![CDATA[http://www.url.com/image.jpg]]></image>
  </product>
  <product>
    <sku><![CDATA[Joolz Day Silver / Black - 2012]]></sku>
    <price><![CDATA[849.00]]></price>
    <old_price><![CDATA[879.00]]></old_price>
    <in_stock><![CDATA[1]]></in_stock>
    <delivery_time><![CDATA[1 - 2 werkdagen]]></delivery_time>
    <manufacturer><![CDATA[Joolz]]></manufacturer>
    <name><![CDATA[Joolz Day Silver / Black]]></name>
    <description><![CDATA[Joolz Day Compleet.]]></description>
    <url><![CDATA[http://www.url.com/]]></url>
    <categorie><![CDATA[Kinderwagens]]></categorie>
    <subcategorie><![CDATA[Kinderwagen]]></subcategorie>
    <model><![CDATA[Joolz Day]]></model>
    <collectiejaar><![CDATA[2012]]></collectiejaar>
    <shipping_price><![CDATA[0.00]]></shipping_price>
    <image><![CDATA[http://www.url.com/image.jpg]]></image>
  </product>
</producten>
我想知道在使用XPath两次时,是否有更好的方法读取xml。一个在循环之前,另一个在循环中。我这样做是因为我希望能够解析各种提要

我有点担心字段后面的[0]:$price[0]

“我想知道当使用XPath两次时,是否有更好的方法读取xml。一次在循环之前,另一次在循环中。”

为什么??我看不出有什么不对

“我有点担心字段后面的
[0]
$price[0]

xpath()
始终返回节点列表,即使只有一个节点可供选择。
[0]
是正确的


无论如何,由于您使用的是SimpleXML,因此可以编写:

$producten = new SimpleXMLElement($feed_data);

foreach ($producten->product as $product) 
{
  echo $product->price . "\n";
  echo $product->old_price . "\n";
  echo $product->in_stock . "\n";
  echo $product->manufacturer . "\n";
}

谢谢,但我需要使用XPath,因为我正在将它们保存到数据库;)
$producten = new SimpleXMLElement($feed_data);

foreach ($producten->product as $product) 
{
  echo $product->price . "\n";
  echo $product->old_price . "\n";
  echo $product->in_stock . "\n";
  echo $product->manufacturer . "\n";
}