2010-05-17 80 views
3

我有一個XML文檔,需要生成靜態HTML頁面(通過CD進行分發)。我知道(在不同程度上)JavaScript,PHP和Python。我認爲目前的選項這裏列出:從XML內容生成靜態HTML網站

  • 我不排除JavaScript,因此其中一個方案是使用Ajax動態加載XML內容轉換成HTML頁面。 編輯:我會使用jQuery這個選項。

  • 學習一些基本的XSLT並按照這種方式生成符合正確規範的HTML。

  • 用PHP生成站點(例如),然後生成一個靜態站點。

  • 編寫腳本(以Python爲例)將XML轉換爲HTML。這與XSLT選項類似,但不必學習XSLT。

有用的信息:

  • 的XML可能會在某個時候發生改變,所以我希望能夠輕鬆地重新生成網站。

  • 我將不得不生產某種菜單來跳轉文檔(所以我需要產生某種內容的索引)。

我想知道是否有人有更好的想法,我沒有想到。如果沒有,我想讓你告訴我哪個選項似乎最明智。我想我知道我要做什麼,但我想要第二個意見。謝謝。

回答

4

我認爲XSLT是迄今爲止最簡單和最好的方法 - 即使考慮到必須學習xslt。

有幾種xslt編程風格,但最簡單的就是「推送處理」,您可以在其中編寫多個模板來描述如何將xml輸入轉換爲html輸出。然後你編寫一個根模板輸出基本的html包裝並調用其他模板。根 模板是最簡單的一個:

<xsl:template match="/" > <!-- "/" matches the document root --> 
    <html> <!-- whatever is not in xsl: namespace is template output --> 
    <head><title>...</title></head> 
    <body> 
    <xsl:apply-templates /> <!-- this searches for and calls additional template matches --> 
    </body> 
    </html> 
</xsl:template> 
+0

謝謝Steven(和Lucero)。我想我會使用XSLT,當我完成時我會報告回來!如果一切都很糟糕,我保留撤回我接受的答案的權利:) – Skilldrick 2010-05-19 16:31:29

1

我會去與PHP選項。原因在於當XML更改您的網站內容「應該」時會自動更改,而無需觸摸您的PHP代碼。

創建一個Python腳本來生成大量的靜態頁面對我來說似乎是一個壞主意,而對於JavaScript,你會遇到跨瀏覽器的麻煩(除非你使用的是框架)。

使用服務器端語言進行這些類型的任務,這是他們的目的。

+0

的事情是,它正在對CD分佈,所以我還是要重新生成靜態頁面。另外,如果我使用JS路由,我將使用jQuery。 – Skilldrick 2010-05-17 15:57:41

+0

該網站是否分發購買CD?換句話說,人們會從CD-ROM上運行這個站點嗎? – Andre 2010-05-17 16:02:34

+0

在這種情況下,PHP和服務器端語言都不存在。最好的方法可能是Python恕我直言,除非你很瞭解XSLT。 – Andre 2010-05-17 16:05:54

2

我會選擇XSLT選項,通過參數進行控制,以根據需要從相同的XML源生成不同的頁面。這真的是用於XML轉換的工具。

+0

我不確定XSLT的唯一原因是因爲它是我以前從未使用過的語言。雖然我很高興學習。 – Skilldrick 2010-05-17 15:58:17

+0

如果您之前已經完成了一些功能性/聲明性編程,我認爲您很快就會感受到使用XSLT的感覺。 – Lucero 2010-05-17 16:01:12

0

用你最喜歡的東西去吧。

如果它很簡單,你可以使用(例如)PHP生成一個頁面,然後使用命令行腳本(在Python或PHP中)爲你創建緩存文件。