2011-10-18 4 views
0

배열의 데이터를 기반으로 바뀌는 "태그"가있는 XML 문서가 있습니다. 두 가지 유형의 태그가 있습니다. 하나는 세트를 정의하는 상위 태그이고 다른 하나는 값으로 대체되는 태그입니다. 다음은 템플릿에 구축하고 채우는 데 사용되는 데이터의 예는 다음과 같습니다배열 반복 및 템플릿 내 데이터 교체

여기
$array = array(
'name'  => 'name', 
'city' => 'city', 
'addresses' => array(
    array(
    'street' => '123', 
    'city' => 'main' 
    ), 
    array(
    'street' => '123', 
    'city' => 'main' 
    'phone' => array(
     array( 
     'home' => '123456',                 'work' => '1234567' 
     ) 

는 예를 들어 템플릿입니다 :

 <name>%name%</name> 
     <city>%city%</city> 
     %%addresses%% 
      <street>%street%</street> 
      <city>%city%</city> 
      %%phone%% 
       <home>%%home%%</home> 
       <work>%%work%%</work> 
      %%/phone%% 
     %%/addresses%% 

배열의 키 값은 템플릿 내에서 태그를 일치합니다. 키가 배열 자체 인 경우 키의 태그 (%%)에 포함 된 데이터를 반복합니다.

재귀 함수를 사용하려고 시도했지만 레벨이 한 단계 만 작동하는 것 같습니다.

누구에게 의견이 있습니까? 고맙습니다!

+0

그래서 XML과 같은 템플릿 var-tree를 XML 파일로 구조화 했습니까? 템플릿을 변경할 기회가 있습니까? 그리고 이것이 어떤 방향으로 적용되어야 하는가? 배열의 값이 템플릿에 채워지거나 템플릿이 배열에서 어떤 값을 가져와야하는지 알려 주어야합니까? – hakre

+0

템플릿에 형식이 없으며 아무것도 될 수 있습니다. – dzm

+0

질문에 답변하고 템플릿 형식을 변경해도 괜찮습니까? – hakre

답변

1

나는 당신이 그 "단지 작동"기존의 간단한 템플릿 언어 TM, Mustache처럼 (많은 많은 다른 사람이있다)를 사용하는 것이 좋습니다. 나는 Mustache가 배열에 대해 루핑을 지원하고, 그것을 사용하며, 통합하기가 쉽다는 것을 알고있다. 다양한 언어에 사용할 수 있습니다.