PHP XML读取器根据父标记选择子标记
我有一个从中检索数据的大型XML文件,但我有几个实例,其中子元素的名称相同,XML读取器存储它遇到的最后一个:PHP XML读取器根据父标记选择子标记,php,xml,xml-parsing,Php,Xml,Xml Parsing,我有一个从中检索数据的大型XML文件,但我有几个实例,其中子元素的名称相同,XML读取器存储它遇到的最后一个: <VehicleRemarketingBoat> <MakeString> Rodman Sportfisher </MakeString> </<VehicleRemarketingBoat> <VehicleRemarketingEngine> <MakeString> Volvo </MakeS
<VehicleRemarketingBoat>
<MakeString>
Rodman Sportfisher
</MakeString>
</<VehicleRemarketingBoat>
<VehicleRemarketingEngine>
<MakeString>
Volvo
</MakeString>
</VehicleRemarketingEngine>
你能提供一些关于你得到的错误的信息吗?当我尝试Var_转储时,错误基本上告诉我数组是空的。当我执行Sql插入时,它也是空的。当我做一个var_dump时,第一段代码中确实包含信息。你的问题遗漏了很多信息来回答它。要了解更通用的方法,请参见以下答案:您不需要使用XMLReader进行所有解析,只需要“记录”。在那之后,将记录扩展到DOM并使用Xpath。好的,我通过将simpleXML混合到if语句中解决了我遇到的问题,感谢您提供了问题的链接,以及这些问题
if($xml->nodeType == XMLReader::ELEMENT && $xml->localName == 'VehicleRemarketingBoat'){
$node = simplexml_import_dom($doc->importNode($xml->expand(), true));
$content['MakeString'] = $node->MakeString;
}
if($xml->nodeType == XMLReader::ELEMENT && $xml->localName == 'VehicleRemarketingEngine'){
$node = simplexml_import_dom($doc->importNode($xml->expand(), true));
$content['EngineMake'] = $node->MakeString;
$PreOwnedData[] = $content;
var_dump($PreOwnedData);
}