В общем, есть вот такой XML файл:
<?xml version="1.0" encoding="utf-8" ?>
<data>
<location title="Храм силы" level="1" >
<division>
<enemy char_id = "3" health = "70" char_name = "Враг 1 1" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
<enemy char_id = "1" health = "70" char_name = "Враг 1 2" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
</division>
<division>
<enemy char_id = "3" health = "200" char_name = "Враг 2 1" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
</division>
<division>
<enemy char_id = "1" health = "210" char_name = "Враг 2 2" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
</division>
</location>
<location title="Храм воли" level="2" >
<division>
<enemy char_id = "3" health = "250" char_name = "Враг 3 1" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
</division>
</location>
<location title="Храм души" level="3" >
<division>
<enemy char_id = "3" health = "300" char_name = "Враг 3 2" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
</division>
</location>
<location title="Просто храм" level="4" >
<division>
<enemy char_id = "1" health = "400" char_name = "Просто враг" rightLeg = "1" leftArm = "1" rightThigh = "1" head = "1" leftLeg = "1" shoulder = "1" leftFist = "101" skirt = "601" torso = "401" leftFoot = "1" leftForearm = "1" rightFist = "1" rightForearm = "1" rightFoot = "1" leftThigh = "1" rightArm = "1" />
</division>
</location>
</data>
В php скрипте мне нобходимо вытащить из этого XML файл ноду location с указанным индексом, и аз нее вытащить указанную ноду division
Но вот как это сделать?
Сейчас написал такой код:
function getEnemiesDataFromXML($adventure_index, $episode_index) {
$enemies = array();
$xml = simplexml_load_file( 'locations/locations.xml' );
$adventure = $xml->location[$adventure_index];
$episode = $adventure->division[$episode_index];
foreach ($episode->children() as $enemyNode) {
$enemy = new Enemy();
$enemy->health = intval($enemyNode['health']);
array_push($enemies, $enemy);
}
return $enemies;
}
Передал в функцию аргументы 0, 0, и все вроди бы ок. Но как только передал $adventure_index = 1, начались проблемы. С помощью print_r() выяснил что этот код:
$adventure = $xml->location[$adventure_index];
на самом деле не выбирает ноду location с указанным индексом, а собирает их все, и указание индекса здесь вообще не играет никакой роли.
Так как же быть? Ну не перебирать же все это в цикле, это ведь глупо. Весь смысл DOM теряется. :huh:
Прошу помощи у более продвинутых PHP-шников :unsure: