0

尝试使用 PHP 做两件事

1) 使用 xpath() 运行一个 xpath 查询,挑选出所有产品标签。这应该返回一个代表每个产品标签的 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";
}
4

1 回答 1

0

首先,您的 XML 无效 - “ProductURL”标签未关闭。其次 "$node" 将是一个对象,所以你不能那样打印它。

于 2012-07-15T07:03:30.120 回答