2009-10-29 28 views
0

編輯:我的意思是通過HTML顯示XML數據,而不是試圖將HTML獲取到XML。從XML加載HTML內容的簡單方法?

有沒有一種簡單的方法可以將XML內容加載到HTML中?爲了給你一個想法,這是我DTD的XML文件:

<!DOCTYPE bookreport [ 
    <!ELEMENT page (title,author,image?,section+)> 
     <!ELEMENT title (#PCDATA)> 
     <!ELEMENT author (#PCDATA)> 
     <!ELEMENT image (path,side,alternate?)> 
     <!ATTLIST image type CDATA #REQUIRED> 
     <!ATTLIST image width CDATA #REQUIRED> 
     <!ATTLIST image height CDATA #REQUIRED> 
     <!ATTLIST image bookcover (yes) "no"> 
     <!ELEMENT path (#CDATA)> 
     <!ELEMENT side (#CDATA)> 
     <!ELEMENT alternate (#PCDATA)> 
     <!ELEMENT section (name,image?,paragraph*,subsection*)> 
     <!ELEMENT name (#PCDATA)> 
     <!ELEMENT paragraph (#PCDATA)> 
      <!ELEMENT emphasis (#PCDATA)> 
     <!ELEMENT subsection (name,paragraph+,image?)> 
    ]> 

所以你可以看到,它被分成部分和小節。 <emphasis>標籤中XML中唯一的實際可視標記,我不想將其轉換爲斜體。我也做了一個我喜歡的CSS佈局,兩列,部分是流暢的,並保持居中。我想要的是它的導航欄中有每個#部分的鏈接。

我真的很喜歡這樣做,因爲它將數據從標記中分離出來,這也與外觀(CSS)分開。是否有可能沒有服務器端編碼(JavaScript我猜)?如果沒有,我怎麼在PHP中做到這一點?即使使用PHP更好,我也想知道如何(如果可能)使用JavaScript來做到這一點,以便在PHP不可用時使用它。這不是重要的。

+0

「簡單」是相對的。但古爾達斯是正確的。解決方案是XSLT。在前臺跨瀏覽器上使用PHP進行服務器端更可靠。 – 2009-10-29 23:52:08

+0

那麼用戶會看到一個.html文件,還是一個樣式/格式化/轉換後的xml文件? – mk12 2009-10-30 00:00:11

+0

兼容性不是問題,對吧? – mk12 2009-10-30 00:02:55

回答

1

您可以使用Javascript在客戶端上對XML數據執行XSLT轉換以獲取您的HTML;

This應該讓你開始

+0

這看起來像我想要的,我會試試看。 – mk12 2009-10-29 23:43:29

+0

謝謝!只花了幾個小時,我對結果很滿意。與內容和速度(明顯的速度)相同的純html版本。 – mk12 2009-10-30 03:07:37

+0

我應該使用XSLT 1.0還是2.0? – mk12 2009-10-30 04:01:00