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";
}