我的xml内容:
<?xml version="1.0" encoding="UTF-8"?>
<nets>
  <net>
    <domain>sina</domain>
    <username>name</username>
    <password>word</password>
  </net>
  <net>
    <domain>sohu</domain>
    <username>uuu</username>
    <password>wwww</password>
  </net>
</nets>
我用来读取节点信息的代码:
<?php
$doc = new DOMDocument();
if($doc->load('netset.xml'))
{
   $nets=$doc->getElementsByTagName("net");
   if($nets)
   {
      foreach($nets as $net)
      {
       $username=$net->getElementsByTagName("username");
       $name=$username->item(0)->nodvalue;
       echo "$name";
      }
   }
   else
   {
       echo "has no nets";
   }
}
?>
xml文件能装入,为什么读不出数据呢?

解决方案 »

  1.   


          $name=$username->item(0)->nodeValue;
          echo $name; 
      

  2.   

    $xml = simplexml_load_file('netset.xml');
    print_r($xml);
    试试看
      

  3.   

    参考PHP手册 --SimpleXML functions
    就可以了
      

  4.   

    $name=$username->item(0)->nodvalue; ????
    应为:
    $name = $username->item(0)->nodeValue; 
      

  5.   

    没见到哪不行,注意nodeValue的拼写,大小写.
      

  6.   

    <?php
    $doc = new DOMDocument();
    if($doc->load('netset.xml'))
    {
        $nets=$doc->getElementsByTagName("username");    if ($nets)
        {
            foreach ($nets as $item) {
                echo $item->nodeValue . "\n";
            }
        }
        else
        {
            echo "has no nets";
        }
    }
    ?>
      

  7.   

    再贴个增加节点的:
    <?php
    $doc = new DOMDocument();
    if($doc->load('netset.xml'))
    {
        $nets=$doc->getElementsByTagName("username");    if ($nets)
        {
            foreach ($nets as $item) {
                echo $item->nodeValue . "\n";
            }
        }
        else
        {
            echo "has no nets";
        }
    }//create node
    $xpath   =   new   DOMXPath($doc);
    $nodes = $xpath->evaluate('/nets');
    $node   =   $nodes->item(0);
    $new   =   $doc-> createElement('net');
    $net_node = $node-> appendChild($new);
    $domain = $doc->createElement('domain');
    $username = $doc->createElement('username');
    $password = $doc->createElement('password');
    $domain = $net_node->appendChild($domain);
    $domain->nodeValue = "www.lizhili.com";
    $username = $net_node->appendChild($username);
    $username->nodeValue = "lee";
    $password = $net_node->appendChild($password);
    $password->nodeValue = "123456";$doc->save('netset.xml');
    ?>
      

  8.   

    谢谢各位,已经可以了,原因是xml文件的对齐的问题。如下:
    <?xml version="1.0" encoding="UTF-8"?> 
    <nets> 
      <net> 
      <domain>sina </domain> 
      <username>name </username> 
      <password>word </password> 
      </net> 
      <net> 
      <domain>sohu </domain> 
      <username>uuu </username> 
      <password>wwww </password> 
      </net> 
    </nets> 
    好晕的问题,谢谢各位大侠!!!