2013-10-11 2 views
1

그래서 한 가지를 제외하고는 거의 원하는 출력을 얻었습니다. 필자는 PHP를 사용하여 HTML 테이블 내부의 새로운 줄에 내 XML 파일의 특정 부분을 인쇄하는 방법을 알아낼 수 없습니다.xml 데이터를 PHP로 html 테이블에 에코하려고합니다.

필자는 PHP와 관련해서 가장 위대하지 않으나 재미있게 보았습니다. 지금까지 가지고있는 코드에 관해서는 PHP 섹션을 게시 할 것입니다.

<?php 
$file="badscifimovies.xml"; 
$xml = simplexml_load_file($file) or die ("no load"); 
echo <<<EOF 
<table> 
    <tr> 
    <th>Title</th> 
    <th>Year</th> 
    <th>Producers/Director</th> 
    <th>Stars</th> 
    <th>Budget</th> 
    <th>MST3000</th> 
    </tr> 
EOF; 
foreach($xml->movie as $movie){ 
    echo "<tr>"; 
    echo "<td>{$movie->title}</td>"; 
    echo "<td>{$movie->year}</td>"; 
    echo "<td>{$movie->director->producer}</td>"; 
    foreach($movie->stars->star as $stars){ 
    echo "<td>{$stars[0]}</td>"; 
    } 
    echo "<td>{$movie->budget}</td>"; 
    echo "<td>{$movie->mst}</td>"; 
    echo "<br />"; 
    echo "</tr>"; 
} 
echo '</table>'; 
?> 

찾고있는 출력은 "별"섹션입니다. 내가에서 점점 오전 XML의 부분은 이것이다 :

<stars> 
    <star>Name One</star> 
    <star>Name two</star> 
    <star>Name three</star> 
</star> 

내가 별도의 행에 그 각각을 인쇄 할 수없는 것. 다른 모든 코드는 XML 문서의 나머지 부분을 출력합니다 (영화 당 1 개의 요소가 있기 때문에 가능합니다). 별 섹션의 경우 3 개의 별을 모두 나란히 인쇄하지만 각 동영상 섹션을 새로운 행에 인쇄해야합니다.

도움을 주시면 감사하겠습니다. 당신이 나에게서 더 많은 정보를 필요로하면 나는 더 게시 할 것이다.

+0

사용 된 XML의 넓은 부분을 붙여 줄 수 있습니까? – ex3v

답변

1
foreach($xml->movie as $movie){ 
    echo "<tr>"; 
    echo "<td>{$movie->title}</td>"; 
    echo "<td>{$movie->year}</td>"; 
    echo "<td>{$movie->director->producer}</td>"; 
    echo "<td>"; 
    foreach($movie->stars->star as $stars){ 
    echo $stars[0] . '<br/>'; 
    } 
    echo "</td>"; 
    echo "<td>{$movie->budget}</td>"; 
    echo "<td>{$movie->mst}</td>"; 
    echo "<br />"; 
    echo "</tr>"; 
} 

나는 이것이 효과가 있다고 생각한다. 모든 별에 대해 <td> 요소를 새로 만들었지 만 <th> 태그 하나만 일치 시켰습니다.

+0

하, 잘됐다! 고맙습니다. 모든 프로그래밍과 마찬가지로 일부 사용자가 살펴볼 때까지보기에는 정말 쉬운 수정이 있어야합니다. 다시 감사합니다. 완벽하게 작동했습니다! –

1

XML 파일 (employee.xml)

<root> 
<person> 
    <sno>1</sno> 
    <name>person1</name> 
    <phno>098687667</phno> 
</person> 
<person> 
    <sno>2</sno> 
    <name>person2</name> 
    <phno>897876756</phno> 
</person> 
<person> 
    <sno>3</sno> 
    <name>person3</name> 
    <phno>986875675</phno> 
</person> 

PHP 코드

<body> 
<?php 
$xml = simplexml_load_file("employee.xml") 
or die("Error: Cannot create object"); 

$element_name = array();         //get all xml element name 
foreach ($xml->children()->children() as $value) { 
$element_name[] = $value->getName(); 
} 
?> 
<table border = "1"> 
<thead> 
<tr> 
<?php 
foreach ($element_name as $value) {    //display table head 
echo "<th>{$value}</th>"; 
} 
?> 
</tr> 
</thead> 

<tbody> 
<?php 
foreach ($xml->children() as $value) {    //display table data 
echo "<tr>";  
for ($i = 0; $i < count($element_name); $i++) { 
echo "<td>{$value->children()->$element_name[$i]}</td>"; 
} 
echo "</tr>"; 
} 
?> 
</tbody> 
</table> 
</body> 
관련 문제