То, что я пытаюсь сделать, - подсчитать элементы под корневым элементом. Затем проверьте, имеет ли один идентификатор на том же уровне значение id. Когда это происходит, он должен увеличиваться на единицу.Элементы подсчета XML, если id существует приращение на один
Код
public function _generate_id()
{
$id = 0;
$xpath = new DOMXPath($this->_dom);
do{
$id++;
} while($xpath->query("/*/*[@id=$id]"));
return $id;
}
пример XML
<?xml version="1.0"?>
<catalog>
<book id="0">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="1">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
</catalog>
Я использовал Гото заявление и увеличиваем идентификатор и, кажется, работает. Если у кого-то есть лучшее предложение. Я всегда за это. – Dany
В чем вопрос? – hek2mgl
Извините, я был настолько сосредоточен на том, чтобы сделать себя ясным. Ну, мне нужно знать мотыгу, чтобы считать элементы и увеличивать на единицу, если идентификатор уже занят. Таким образом, идентификатор должен быть уникальным. Мне все равно, как это делается: P – Dany