Ben bunu nasıl yapabilirim dosyasına kimliğini eklemek için gereken yeni bir xml dosyası oluşturduğunuzda 20 - I id 1 olan bir exctiing xml dosyası var?
Ben xml ile SQL ile bunu ama olmaz biliyorum
lütfen yardım
xml zaten en düşükten en yüksek emretti ise, bu XPath sorgu yapabilirsiniz:
$res = $doc->xpath('/list/a[not(@id <= preceding-sibling::a/@id) and ' .
'not(@id <= following-sibling::a/@id)]/@id');
$nextId = is_array($res) && count($res) ? (intval($res[0]->id) + 1) : 0;
böylece (id varsayarak bir niteliğidir) gibi aksi halde maksimum id bulabilirsiniz:
$xml = '<list><a id="1" /><a id="2" /><a id="3" /></list>';
$doc = simplexml_load_string($xml);
$max = -1;
foreach ($doc->xpath('/list/a/@id') as $el) {
$i = intval($el->id); if ($i > $max) $max = $i;
}
echo "Max: $max";
Yukarıdaki yazdırır "3", bu nedenle yeni kimliği 4'tür
veya Veger's solution da çalışacak kullanın
Bazı XPath sorgusu ve php kodu kullanarak, mevcut dosyadaki en yüksek kimliğini bulmak.
$ids = $xml->xpath("element/id"); // or something that fits your XML document
asort($ids); // or use some other sorting algorithm
$highest_id = end($ids);
Ben xpath sorguları hakkında çok bilgili değilim, bu yüzden orada sanırım sorgu sırasında sıralamak için bazı hile olabilir, ama bu örnek optimize edilebilir eğer başkası muhtemelen bu işaret edecektir.
Sonraki yeni bir XML belgesi oluşturmak ve buna yüksek kimliği ekleyin.