<?xml version="1.0" encoding="UTF-8"?>
<menus>
    <menu name="Members Area" link="#">
    </menu>
    <menu name="Training Programs" link="#">
        <submenu link="#" name="Mentors"/>
        <submenu link="#" name="SMB Wiki"/>
        <submenu link="#" name="Account "/>
<submenu link="#" name="Mentors"/>
        <submenu link="#" name="SMB Wiki"/>
        <submenu link="#" name="Account "/>
    </menu>
    <menu name="Trading Tools" link="#">
        <submenu link="#" name="Mentors"/>
        <submenu link="#" name="SMB Wiki"/>
        <submenu link="#" name="Account "/>
    </menu>
    <menu name="Mentors" link="#">    </menu>
    <menu name="SMB Wiki" link="#">    </menu>
    <menu name="Account " link="#">    </menu></menus>
问题描述:
$Node_Record = $xpath->query("//menu[@name='$menu']");
按照xml里的name找出link和name属性的值即可
给分100

解决方案 »

  1.   


    <?php
        $data = file_get_contents("test.xml");
        $parser = xml_parser_create();                       
        xml_parse_into_struct($parser, $data, $values, $index);    
        xml_parser_free($parser);                           
        print_r($values);
    ?>
      

  2.   

     $Node_Record = $xpath->query("//menu[@name='$menu']");
    按照xml里的name 找出link和name属性的值即可
    ================
    找子节点的link name?$xml = <<<xml
    <?xml version="1.0" encoding="UTF-8"?>
    <menus>
      <menu name="Members Area" link="#">
      </menu>
      <menu name="Training Programs" link="#">
      <submenu link="#" name="Mentors"/>
      <submenu link="#" name="SMB Wiki"/>
      <submenu link="#" name="Account "/>
      <submenu link="#" name="Mentors"/>
      <submenu link="#" name="SMB Wiki"/>
      <submenu link="#" name="Account "/>
      </menu>
      <menu name="Trading Tools" link="#">
      <submenu link="#" name="Mentors"/>
      <submenu link="#" name="SMB Wiki"/>
      <submenu link="#" name="Account "/>
      </menu>
      <menu name="Mentors" link="#">  </menu>
      <menu name="SMB Wiki" link="#">  </menu>
      <menu name="Account " link="#">
      </menu>
    </menus>
    xml;
    $xmlhandler = new DOMDocument();
    $xmlhandler->loadXML( $xml );
    $xpath = new DOMXpath( $xmlhandler );
    $name = "Training Programs";$element = $xpath->query("//menus/menu[@name='{$name}']/submenu");
    foreach( $element as $k=>$v)
    {
    $array[] = array('link'=>$v->attributes->item(0)->value
        ,'name'=>$v->attributes->item(1)->value);
    }
    echo "<pre/>";
      

  3.   

    <?php 
    $xml = <<<xml
    <?xml version="1.0" encoding="UTF-8"?>
    <menus>
      <menu name="Members Area" link="#">
      </menu>
      <menu name="Training Programs" link="#">
      <submenu link="#" name="Mentors"/>
      <submenu link="#" name="SMB Wiki"/>
      <submenu link="#" name="Account "/>
      <submenu link="#" name="Mentors"/>
      <submenu link="#" name="SMB Wiki"/>
      <submenu link="#" name="Account "/>
      </menu>
      <menu name="Trading Tools" link="#">
      <submenu link="#" name="Mentors"/>
      <submenu link="#" name="SMB Wiki"/>
      <submenu link="#" name="Account "/>
      </menu>
      <menu name="Mentors" link="#">  </menu>
      <menu name="SMB Wiki" link="#">  </menu>
      <menu name="Account " link="#">
      </menu>
    </menus>
    xml;
    $xmlhandler = new DOMDocument();
    $xmlhandler->loadXML( $xml );
    $xpath = new DOMXpath( $xmlhandler );
    $name = "Training Programs";$element = $xpath->query("//menus/menu[@name='{$name}']/submenu");
    foreach( $element as $k=>$v)
    {
        $array[] = array('link'=>$v->attributes->item(0)->value
                        ,'name'=>$v->attributes->item(1)->value);
    }
    echo "<pre/>";
    $xmlhandler->save("test.xml");//保存xml
    ?>