<?php
$doc = new DOMDocument();
$doc->load('aaaa.xml'); //读取xml文件$humans = $doc->getElementsByTagName_r( "humans" ); //取得humans标签的对象数组foreach( $humans as $human )
{
$names = $human->getElementsByTagName_r( "name" ); //取得name的标签的对象数组
$name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>$sexs = $human->getElementsByTagName_r( "sex" );
$sex = $sexs->item(0)->nodeValue;$olds = $human->getElementsByTagName_r( "old" );
$old = $olds->item(0)->nodeValue;echo "$name - $sex - $old\n";}
?>
<?xml version="1.0" encoding="utf-8"?><humans>
<zhangying>
<name>张映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>男</sex>
<old>28</old>
</tank>
</humans>

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>    <head>
            <link rel="stylesheet" type="text/css" href="ErrorPageTemplate.css" >        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">        <title>HTTP 500 내부 서버 오류</title>        <script src="errorPageStrings.js" language="javascript" type="text/javascript">
            </script>
            <script src="httpErrorPagesScripts.js" language="javascript" type="text/javascript">
            </script>
        </head>    <body onLoad="javascript:expandCollapse('infoBlockID', true); initGoBack(); navCancelInit(); initMoreInfo('infoBlockID');">        <table width="730" cellpadding="0" cellspacing="0" border="0">        <!-- Error title -->
                <tr>
                    <td id="infoIconAlign" width="60" align="left" valign="top" rowspan="2">
                        <img src="info_48.png" id="infoIcon" alt="정보 아이콘">
                    </td>
                    <td id="mainTitleAlign" valign="middle" align="left" width="*">
                        <h1 id="mainTitle">웹 사이트에서 페이지를 표시할 수 없습니다.</h1>
                    </td>
                </tr>            <tr>
                    <!-- This row is for HTTP status code, as well as the divider-->
                    <td id="http500Align" class="errorCodeAndDivider" align="right"><ID id="http500">&nbsp;HTTP 500</ID>
                        <div class="divider"></div>
                    </td>
                </tr>
            <!-- Error Body -->
                <tr>
                    <td>
                        &nbsp;
                    </td>
                    <td id="likelyCausesAlign" valign="top" align="left">
                        <h3 id="likelyCauses">가능성이 높은 원인:</h3>
                        <ul>
                            <li id="causeSiteMaintenance">웹 사이트는 유지 관리 중입니다.</li>
                            <li id="causeSiteError">웹 사이트에 프로그래밍 오류가 있습니다.</li>
                        </ul>
                    </td>
                </tr>        <!-- What you can do -->
                <tr>
                    <td>
                        &nbsp;
                    </td>
                    <td id="whatToTryAlign" valign="top" align="left">
                        <h2 id="whatToTry">가능한 해결 방법:</h2>
                    </td>
                </tr>        <!-- refresh page -->
                <tr>
                    <td>
                        &nbsp;
                    </td>
                    <td id="refreshPageAlign" align="left" valign="middle">
                        <h4>
                            <table>
                              <tr>
                                  <td valign="top">
                                      <img src="bullet.png" border="0" alt="" class="actionIcon">
                                  </td>
                                  <td valign="top">
                                      <span id="navCancelContainer"></span><noscript id="refreshPage">페이지를 새로 고칩니다.</noscript>
                                  </td>
                              </tr>
                            </table>
                        </h4>
                    </td>
                </tr>
            <!-- back to previous page -->
                <tr>
                    <td >
                        &nbsp;
                    </td>
                    <td id="goBackAlign" align="left" valign="middle">
                        <h4>
                            <table>
                              <tr>
                                  <td valign="top">
                                      <img src="bullet.png" border="0" alt="" class="actionIcon">
                                  </td>
                                  <td valign="top">
                                      <span id="goBackContainer"></span><noscript id="goBack">이전 페이지로 돌아갑니다.</noscript>
                                  </td>
                              </tr>
                            </table>
                        </h4>
                    </td>
                </tr>
            <!-- InfoBlock -->
                <tr>
                    <td id="infoBlockAlign" align="right" valign="top">
                        &nbsp;
                    </td>
                    <td id="moreInfoAlign" align="left" valign="center">
                        <h4>
                            <table>
                                <tr>
                                    <td valign="top">
                                        <a href="#" onclick="javascript:expandCollapse('infoBlockID', true); return false;"><img src="down.png" id="infoBlockIDImage" border="0" class="actionIcon" alt="추가 정보"></a>
                                    </td>
                                    <td valign="top">
                                        <span id="moreInfoContainer"></span>
                                        <noscript><ID id="moreInformation">추가 정보</ID></noscript>
                                    </td>
                                </tr>
                            </table>
                        </h4>                    <div id="infoBlockID" class="infoBlock">
                            <p id="errorExplanation">이 오류(HTTP 500 내부 서버 오류)는 방문한 웹 사이트의 서버에 문제가 있어 웹 페이지가 표시되지 않음을 의미합니다.</p>
                            <p id="moreInfoSeeHelp">HTTP 오류에 대한 자세한 내용은 도움말을 참조하십시오.</p>
                        </div>                </td>
                </tr>
            </table>
        </body>
    </html>
      

  2.   

     getElementsByTagName_r 
    这个方法打哪来的?手册上可没有
      

  3.   

    <?php
    $doc = new DOMDocument();
    $doc->load('aaaa.xml'); //读取xml文件$humans = $doc->getElementsByTagName_r( "humans" ); //取得humans标签的对象数组foreach( $humans as $human )
    {
    $names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组
    $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>$sexs = $human->getElementsByTagName( "sex" );
    $sex = $sexs->item(0)->nodeValue;$olds = $human->getElementsByTagName( "old" );
    $old = $olds->item(0)->nodeValue;echo "$name - $sex - $old\n";}
    ?>
    去掉_r后程序运行正常, 显示 
    张映 - 男 - 28
    如果使用foreach的本意是读取出
    张映 - 男 - 28
    tank - 男 - 28
    那么需要重新设计下你的xml文档结构
    foreach( $humans as $human ) $humans 只有一个