SimpleXML,xpath不返回任何内容

时间:2012-07-15 05:38:38

标签: php xpath simplexml

尝试使用PHP做两件事

1)使用xpath()运行一个选择所有Product标签的xpath查询。这应该返回一个表示每个Product标签的SimpleXMLElements数组。

2)再次使用xpath()从每个Product标签中选择ProductCode和ProductName并获取其内容。

我的XML是

<All_Products>
<Product>
<ProductCode>9978H</ProductCode>
<ProductName>abc with Buckle in aBlack</ProductName>
<ProductURL>http://abc.com/abc with Buckle in aBlack-p/9978H.htm<ProductURL>
<StockStatus>2</StockStatus>
</Product>
<Product>
<ProductCode>99s</ProductCode>
<ProductName>abc with Buckle in aBlack</ProductName>
<ProductURL>http://abc.com/abc with Buckle in aBlack-p/9978H.htm</ProductURL>
<StockStatus>2</StockStatus>
</Product>
</All_Products>

我的PHP代码如下所示,但它没有返回任何产品标签,产品代码等,我的代码中有什么问题

$xml = simplexml_load_file('http://www.abc.com/xml.php');


if ($xml === false) {
    echo 'Error while parsing the document';
    exit;
}

$dom_sxe = dom_import_simplexml($xml);
if (!$dom_sxe) {
    echo 'Error while converting XML';
    exit;
}


$result = $xml->xpath('/All_Products/Product');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

1 个答案:

答案 0 :(得分:0)

首先,您的XML无效 - “ProductURL”标记未关闭。 其次“$ node”将是一个对象,因此你无法以这种方式打印它。