2014-12-18 2 views
-1

Я создаю PDF-View-Counter.Увеличение целого числа в переменной SimpleXML XPath не работает

Теперь я застрял в изменении значения «вид» из XML. Когда я пытаюсь суммировать переменную ($VAR++), она не работает. Что мне делать?

<?php 

$datei = "pdf.pdf"; 

$xmldb = "db.xml"; 

$id = md5($datei); 

$xml = simplexml_load_file($xmldb); 

$views = $xml->xpath('/data/count[@id="'.$id.'"]/views'); 

$num = $views[0][0]; 

$num++; 

echo $num; // it doesn't work 

XML-код:

<?xml version="1.0" encoding="UTF-8"?> 
<data> 
    <count id="883c7046854e04138c55680ffde90a61"> 
     <filename>s</filename> 
     <views>1</views> 
     <lastview>f</lastview> 
    </count> 
</data> 
+0

Это не работает: не очень хороший способ спросить об этом в одиночку: расскажите, что вы ожидали (и, возможно, почему), и расскажите, что происходит вместо этого. Тогда ясно, что вы имеете в виду, когда пишете «это не работает». В противном случае неясно, кто-то, читающий ваш вопрос, должен угадать. – hakre

ответ

2

Я думаю, вы должны отбросить полученный объект в целое число.

Насколько я знаю SimpleXML->xpath() всегда возвращает массив с нулем или более SimpleXMLElement Объекты.

$num = (int) $views[0]; 
$num++; 
+0

Ничего себе! Большое спасибо, это работает! – DevTec

+1

Альтернатива: Назначьте целочисленное значение как новый текст элемента: '$ num = $ views [0] [0]; $ num [0] = 1 + $ num; '. Важная часть здесь заключается в том, что '++' (оператор increment) делает * not * работу с объектами, которые имеют '__toString()' (например, ** SimpleXMLElement **). – hakre

Смежные вопросы