大家好,我有一个这样的 XML 文件:
<?xml version="1.0"?>
<catalog>
<car>
<title>This is car</title>
<price>44.95</price>
<model>2018</model>
<description>An in-depth look at creating applications with XML.</description>
</car>
<bike>
<title>this is bike</title>
<price>33.58</price>
<description>Just the dummy description</description>
</bike>
<wheels>
<title>this is wheel</title>
<price>33.58</price>
<description>Just the dummy description</description>
</wheels>
<bike>
<title>this is bike</title>
<price>33.58</price>
<description>Just the dummy description</description>
</bike>
</catalog>
我想遍历节点并相应地处理节点。如果是汽车,我需要将汽车详细信息传递给某个函数,如果是自行车,则需要将自行车详细信息传递给另一个函数。
关键是根据节点类型(汽车或自行车或其他)处理节点。
PHP
$z = new XMLReader;
$z->open('data.xml');
$doc = new DOMDocument;
// move to the first <product /> node
while ($z->read() && $z->name !== 'product');
// now that we're at the right depth, hop to the next <product/> until the end of the tree
while ($z->name === 'product')
{
// either one should work
//$node = new SimpleXMLElement($z->readOuterXML());
$node = simplexml_import_dom($doc->importNode($z->expand(), true));
// now you can use $node without going insane about parsing
var_dump($node->element_1);
// go to next <product />
$z->next('product');
}
如果节点是产品,上面的 PHP 代码工作正常。我需要使用不同的节点。
暮色呼如