2011-10-18 25 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' 
     ) 

下面是一個例子模板:

​​

數組的鍵值,模板內匹配的標籤。如果密鑰本身是一個數組,則它會循環該密鑰標記(%%)中包含的數據。

我試過做一個遞歸函數,但它似乎只能工作一個深度。

有沒有人有任何建議?謝謝!

+0

那麼你把一個類似XML的模板var-tree構造成一個XML文件?有沒有機會改變模板?這個方向應該應用於哪個方向?應該將數組中的值填入模板中,還是應該從模板中指出應該從數組中選取哪些值? – hakre

+0

該模板沒有格式,可以是任何內容。 – dzm

+0

因此可以回答你的問題並改變模板格式嗎? – hakre

回答

1

我建議你使用現有的簡單模板語言,「只是工作」tm,像Mustache(還有很多其他人)。我知道Mustache支持循環數組,使用它,完成工作,易於集成。適用於多種語言。