duanjia3187 2013-02-04 11:32
浏览 41
已采纳

来自xml的PHP递增/递减值

This is my xml.

    <episodes>
        <episode>
           <series_name>Test</series_name>
            <season_number>1</season_number>
            <episode_number>10</episode_number>
            <episodes_in_season>12</episodes_in_season>
            <notes>Testing</notes>
         </episode>
    </episodes>

What i want to do is get the number of season/episode number and increment or decrement i from that xml and then save it back (i have +/- buttons on my page for season_number and for episode_number, and i am using `$_post for that button).

And here is my code so far.

$xmlDoc = new DOMDocument();
$xmlDoc->load($user);
$xpath = new DOMXpath($xmlDoc);
$test = $xmlDoc->getElementsByTagName('episode')->item(0);

// example for episode number increment / decrement (what i think)

   $number = $test->childNodes->item(2); 

    $increment = $number + 1; 
    $decrement = $number - 1; // example 

i am stuck here and i didn't complete it since i can't see whats going on in $number because i am getting this error Object of class DOMElement could not be converted to int.

i have also tried it with (int)$number = $test->childNodes->item(2); but with no luck. And also i am a beginner in php so i might got this thing wrong all together.

edit:

  $eNumber = $xpath->query('episode_number', 'episode')->item(0);
      $esNumber = $xpath->query('episodes_in_season', 'episode')->item(0);
     if ($eNumber == $esNumber)
     {
        echo "You have reached the max episode in season";

     }
     else
     {

     $eNumber->nodeValue++;
     }

it always says i have reached the max episode

  • 写回答

2条回答 默认 最新

  • douxiyi2418 2013-02-04 11:50
    关注

    If $number is the DOMElement corresponding to episode_number, do the following to increment:

    $number->nodeValue++;
    

    By the way, instead of $number = $test->childNodes->item(2); I would recommend XPath to always address the correct element:

    $number = $xpath->query('episode_number', $test)->item(0);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图