Мне нужно проанализировать несколько XML файлов и поместить проанализированные данные в базу данных.
Структура xml выглядит следующим образом
<npc ATT1="" ATT2="" ATT3="">
<race>DATA</race>
<sex>DATA</sex>
<parameters>
<param ATT1="" ATT2="" ATT3=""/>
<param ATT1="" ATT2="" ATT3=""/>
<skill ATT1="" ATT2="" ATT3=""/>
<skill ATT1="" ATT2="" ATT3=""/>
</parameters>
<equipment ATT1="" ATT2="" ATT3=""/>
<acquire ATT1="" ATT2="" ATT3=""/>
<stats ATT1="" ATT2="" ATT3="">
<vitals ATT1="" ATT2="" ATT3=""/>
<attack ATT1="" ATT2="" ATT3=""/>
<defence ATT1="" ATT2="" ATT3="">
<attribute>
<defence ATT1="" ATT2="" ATT3=""/>
</attribute>
</defence>
</stats>
<skilllist>
<skill ATT1="" ATT2="" ATT3=""/>
<skill ATT1="" ATT2="" ATT3=""/>
<skill ATT1="" ATT2="" ATT3=""/>
<skill ATT1="" ATT2="" ATT3=""/>
</skilllist>
<excrteffect>DATA<excrteffect>
</npc>
Мой текущий код выглядит следующим образом:
$allFiles = scandir($_SERVER['DOCUMENT_ROOT'] . "mydir");
$files = array_diff($allFiles, array('.', '..'));
$doc = new DOMDocument();
foreach($files as $filename) {
$xml_file = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "mydir" . $filename, FILE_TEXT);
$doc->loadXML($xml_file);
$items = $doc->getElementsByTagName('npc');
for ($i = 0; $i < $items->length; $i++) {
$xml_file = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "mydir" . $filename, FILE_TEXT);
$doc->loadXML($xml_file);
$Id = $doc->getElementsByTagName("npc")->item($i)->getAttribute("id");
$Name = $doc->getElementsByTagName("npc")->item($i)->getAttribute("name");
$Lvl = $doc->getElementsByTagName("npc")->item($i)->getAttribute("level");
$Type = $doc->getElementsByTagName("npc")->item($i)->getAttribute("type");
$Title = $doc->getElementsByTagName("npc")->item($i)->getAttribute("title");
$Sex = $doc->getElementsByTagName("sex")->item($i)->nodeValue;
$Race = $doc->getElementsByTagName("race")->item($i)->nodeValue;
}
}
Он отлично работает для данных, которые я уже закодировал, теперь мне нужно получить остальное. Как я могу получить атрибуты от остальных xml? Например, как получить атрибуты из
npc > stats > defence > attribute > defence