Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我已经写了一个php脚本,不,我想在php中获取xml值,但有些值并没有在表中查看_Php_Xml - Fatal编程技术网

我已经写了一个php脚本,不,我想在php中获取xml值,但有些值并没有在表中查看

我已经写了一个php脚本,不,我想在php中获取xml值,但有些值并没有在表中查看,php,xml,Php,Xml,朋友们,请告诉我这个代码中的哪个问题。如果有人知道答案,请告诉我。 //朋友们,请告诉我这个代码中的哪个问题。如果有人知道答案,请告诉我 <?php $sXml= "<?xml version='1.0' encoding='UTF-8'?> <Projects_Detail> <Mr-Imran> <projectBudget>125000</projectBudget> <EmpNo&g

朋友们,请告诉我这个代码中的哪个问题。如果有人知道答案,请告诉我。 //朋友们,请告诉我这个代码中的哪个问题。如果有人知道答案,请告诉我

<?php
$sXml=
"<?xml version='1.0' encoding='UTF-8'?>
<Projects_Detail>

    <Mr-Imran>
        <projectBudget>125000</projectBudget>
    <EmpNo>E100</EmpNo>
    <DeptName>IT</DeptName>
    <HourlyRate>625</HourlyRate>
    </Mr-Imran>

    <Mr-Imran>
        <projectBudget>120000</projectBudget>
    <EmpNo>E101</EmpNo>
    <DeptName>Database</DeptName>
    <HourlyRate>500</HourlyRate>
    </Mr-Imran>

    <Mr-Imran>
        <projectBudget>135000</projectBudget>
    <EmpNo>E102</EmpNo>
    <DeptName>IT</DeptName>
    <HourlyRate>550</HourlyRate>
    </Mr-Imran>

    <Mr-Imran>
        <projectBudget>115000</projectBudget>
    <EmpNo>E103</EmpNo>
    <DeptName>Testing</DeptName>
    <HourlyRate>400</HourlyRate>
    </Mr-Imran>

    <Mr-Imran>
        <projectBudget>150000</projectBudget>
    <EmpNo>E110</EmpNo>
    <DeptName>Database</DeptName>
    <HourlyRate>375</HourlyRate>
    </Mr-Imran>

    <Mr-Imran>
        <projectBudget>140000</projectBudget>
    <EmpNo>E112</EmpNo>
    <DeptName>Testing</DeptName>
    <HourlyRate>425</HourlyRate>
    </Mr-Imran>

</Projects_Detail>
";

$oXML = simplexml_load_string($sXml);  
 if (!$oXML) {  
      die('xml format not valid or simplexml module missing.');  
 }  

 // assuming running the root  
 $oXmlRoot = $oXML;
 // or can be [$oXML->food]  

 //echo '<pre>'; print_r( $oXmlRoot ); echo '</pre>';  
 echo xmlToHtmlTable($oXmlRoot);  


 function xmlToHtmlTable($p_oXmlRoot) {  
      $bIsHeaderProceessed = false;  

      $sTHead = '';  
      $sTBody = '';       
      foreach ($p_oXmlRoot as $oNode) {  
           $sTBody .= '<tr>';  
           foreach ($oNode as $sName => $oValue){  
                if (!$bIsHeaderProceessed) {  
                     $sTHead .= "<th>{$sName}</th>";  
                }  
                $sValue = (string)$oValue;  
                $sTBody .= "<td>{$sValue}</td>";                 
           }  
           $bIsHeaderProceessed = true;  
           $sTBody .= '</tr>';  
      }  

      $sHTML = "<table border=1>  
                     <thead><tr>{$sTHead}</tr></thead>  
                     <tbody>{$sTBody}</tbody>  
                </table>";  
      return $sHTML;  
 }  ?>
$oValue){
如果(!$bisheaderproceed){
$sHead.=“{$sName}”;
}  
$sValue=(字符串)$oValue;
$sTBody.=“{$sValue}”;
}  
$bIsHeaderProceessed=true;
$sTBody.='';
}  
$sHTML=”
{$sHead}
{$sTBody}
";  
返回$sHTML;
}  ?>
以上代码的输出如下

但我想得到这个密码

如果更改外部foreach循环的开始,这可以为您提供项目经理的名称(假设它只是封闭元素的名称)。然后,以与其他列相同的方式添加此内容

foreach($projectManager=>oNode的p_-oXmlRoot){//Include-manager-as-key
$sTBody.='';
//添加管理器标题
如果(!$BisheaderProceed){
$sHead.=“项目经理”;
}
//将实际值添加到表中
$sTBody.=“{$projectManager}”;
foreach($node作为$sName=>$oValue){
foreach ($p_oXmlRoot as $projectManager=>$oNode) {   // Include manager as key
    $sTBody .= '<tr>';
    // Add manager header
    if (!$bIsHeaderProceessed) {
        $sTHead .= "<th>ProjectManager</th>";
    }
    // Add the actual value into the table
    $sTBody .= "<td>{$projectManager}</td>";
    foreach ($oNode as $sName => $oValue){