2016-07-29 64 views
0

我爲MODX編寫了一個腳本,該腳本讀取XML提要並將其解析爲佔位符,因此CMS可以在其模板中使用它。將XML轉換爲一維列表

它正常工作與一個級別,因爲它需要所有的父元素的孩子,並將它們放入佔位符這樣的:

<child>Britney</child> -> into placeholder [[+child]] -> displays as "Britney". 

它的工作原理與屬性,太:

<child age="15">Britney</child> -> into placeholder [[+child.age]] -> displays as "15". 

我努力想辦法讓孫子們以一種很好的方式進行分析。

我不希望孩子的元素覆蓋其他元素。

<child age="15"> 
    <name>Britney</name> 
    <toy>plastic crane</toy> 
    <toy>wooden house</toy> 
</child> 

如果我只是將它追加到當前元素,第二個玩具會覆蓋第一個玩具。我必須使用插入的索引嗎?任何想法?

編輯:我不知道XML文件中可用的元素是什麼。

+0

沒有看到代碼,你用來解析XML和設置佔位符的建議。你能證明嗎? – Vasis

回答

0

因爲沒有明確的XML格式,所以這個任務並不困難。在這種情況下,您需要根據XML Spec預測所有案例。

我可以給你我的那個想法,你怎麼能啓動:

<child age="15"> 
    <name>Britney</name> 
    <toy>plastic crane</toy> 
    <toy>wooden house</toy> 
</child> 

<child age="18"> 
    <name>Bob</name> 
    <toy>toysoldier</toy> 
    <toy>teddybear</toy> 
</child> 
  1. [[+ child.1] => 「」
  2. [[+ child.1._age ] => 15
  3. [[+ child.1.name]] => 「布蘭妮」
  4. [[+ child.2.name]] => 「鮑勃」
  5. [[+ child.1 .toy]] =>「塑料吊車,木屋」
  6. [[+ child.1.toy.2] => 「木屋」
  7. [[+ child._length] => 2

如果你想奉勸剛剛形成你的榜樣,我認爲[[+ child.toy.2]][[+ child.toy_2]]就足夠了。