2012-07-05 2 views
1

XML 파일 :XML simpleDOM sortedXPath - 부모 특성을 선택하고 표시하는 방법?

<?xml version='1.0' encoding='utf-8'?> 

<MyName> 

<EventGroup Name="Japan Shows" ID="341"> 
    <Event Name="Sapporo" ID="40163" StartTime="07/07/12 06:00:00" /> 
    <Event Name="Consadole" ID="5106" StartTime="07/07/12 07:30:00" /> 
    <Event Name="Albirex" ID="4063" StartTime="07/07/12 05:20:00" /> 
    <Event Name="Niigata" ID="1144" StartTime="07/07/12 09:00:00" /> 
</EventGroup> 

<EventGroup Name="USA Shows" ID="342"> 
    <Event Name="Phoenix" ID="40162" StartTime="07/06/12 09:00:00" /> 
    <Event Name="California" ID="5105" StartTime="07/08/12 08:30:00" /> 
    <Event Name="Seattle" ID="4062" StartTime="07/08/12 02:20:00" /> 
    <Event Name="Chicago" ID="1143" StartTime="07/08/12 04:00:00" /> 
</EventGroup> 

</MyName> 

코드 :

<?php 
include 'SimpleDOM.php'; 
$xml = simpledom_load_file($cache_file); 
$count = 0; 
$max = 50; 

foreach ($xml->sortedXPath("EventGroup/Event", "@StartTime", SORT_ASC) as $EventGroup => $item) { 

$time = date("d/m - H:i", strtotime($item['StartTime'])); 
$event_name = $item['Name']; 

    if ($count < $max) { 
     echo "$time"; 
     echo "$event_name"; 
    } 
    $count++; 
} 
?> 

결과 :

07/06 - 09:00 Phoenix 
07/07 - 06:00 Sapporo 
07/07 - 07:30 Consadole 
07/08 - 04:00 Chicago 

등 ... 모두 올바른지있다.

그러나 Approciate EventGroup Name은 어떻게 표시합니까? 각 이벤트 결과에 상위 이름 속성을 선택하여 표시하는 방법은 무엇입니까? 내가 원하는 결과는 다음과 같이해야한다 : 등

USA Shows 07/06 - 09:00 Phoenix 
Japan Shows 07/07 - 06:00 Sapporo 
Japan Shows 07/07 - 07:30 Consadole 
USA Shows 07/08 - 04:00 Chicago 

... 사전에 어떤 도움

감사합니다!

답변

1

노드의 부모를 parentNode()으로 가져올 수 있습니다. 그런 다음 속성 값을 정상적으로 가져올 수 있습니다.

$parent = $item->parentNode(); 
echo $parent['Name']; 
+0

감사합니다. Josh! 매력처럼 일했습니다. –

+0

지금 다른 문제가 발생합니다. 잘못된 정렬 결과를 표시하는 @StartTime을 정렬합니다. 아마도 내 피드가 영국 시간 (07/08/12 08:30:00에 07이 그 달이며, 그 날이되어야 함)에 있습니다. 피드를 일별로 정렬하는 대신 월별로 정렬합니다. 누구든지 내가 도와 줄 수 있니? –

+0

날짜를 유닉스 타임 스탬프로 저장하십시오. 숫자이기 때문에 바로 정렬 할 수 있습니다. 게다가 날짜 형식과 관련된 버그는 없으므로'strtotime()'도 사용할 필요가 없습니다. –

관련 문제