<?xml version="1.0" encoding="utf-8" ?> 
- <messages msgcount="5">
  <message username="Athlan" chat_time="18:18:53">1</message> 
  <message username="Athlan" chat_time="21:32:34">2</message> 
  <message username="Athlan" chat_time="21:36:51">3</message> 
  <message username="Athlan" chat_time="21:37:40">4</message> 
  <message username="Athlan" chat_time="21:37:49">5</message> 
  </messages>就是想问下,php操作xml时候,我想得到第N个子节点,应该怎么弄?比如我想得到messages下的第3个message节点,可以怎么用呢?如果用$messages = $dom->getElementsByTagName("message"); 这样的话,只能用foreach $messages来遍历,又似乎很麻烦,但是又不能用$messages[3]直接访问。。

解决方案 »

  1.   

    是可以的.$strXML = <<<TEST
    <?xml version="1.0" encoding="utf-8" ?> 
    <messages msgcount="5">
    <message username="Athlan" chat_time="18:18:53">1</message> 
    <message username="Athlan" chat_time="21:32:34">2</message> 
    <message username="Athlan" chat_time="21:36:51">3</message> 
    <message username="Athlan" chat_time="21:37:40">4</message> 
    <message username="Athlan" chat_time="21:37:49">5</message> 
    </messages>
    TEST;
    $doc = new DOMDocument;    
    $doc->loadXML($strXML);
    $messages = $doc->documentElement->getElementsByTagName('message'); $message = $messages->item(3);
    echo $message->getAttribute("chat_time");
      

  2.   

    ·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL) 
    ·详情请访问:http://www.515dns.com