У меня есть следующий код:
<?php
$str = '<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<ITEM>
<TITLE>Title1</TITLE>
<CATEGORY>Books</CATEGORY>
<CATEGORY>Books | Novel</CATEGORY>
</ITEM>
<ITEM>
<TITLE>Title2</TITLE>
<CATEGORY>Books</CATEGORY>
<CATEGORY>Books | Sci-fi</CATEGORY>
</ITEM>
</ROOT>';
$xml = simplexml_load_string($str);
$s_xml = $xml->xpath("/ROOT/ITEM");
foreach($s_xml as $s_cat){
$cat_group = htmlspecialchars($s_cat->CATEGORY);
echo $cat_group."<BR />";
}
?>
Я не могу редактировать XML, поэтому мне нужно решить следующую проблему. Как сказать PHP, что мне нужно показать второй узел с именем CATEGORY, а не первый. В моем примере у меня есть выход
Books
Books
И мне нужно:
Books | Novel
Books | Sci-fi
Спасибо!
Это то, что вы ищете (обратите внимание на [1]):
$cat_group = htmlspecialchars($s_cat->CATEGORY[1]);
Занимает второй элемент в массиве элементов категории
Вы всегда можете посмотреть на свои элементы так, чтобы понять, как выглядит структура:
print_r($s_cat->CATEGORY);
Других решений пока нет …