2012-05-10 22 views
0

我想通過JavaScript將單個XML文件轉換爲可讀格式。這是爲什麼:使用JavaScript在一個文件中格式化XML數據

  1. 需要生成一個人們可讀的文檔,它將在任何地方工作。 (Windows,Mac,Linux,iPhone,Android,Blackberry等)
  2. 這些信息來自我定義的C++數據結構。
  3. 需要能夠包含圖片。
  4. 此文檔將作爲電子郵件附件發送一次後創建。

我已經調查:

  • XSLT:可以作爲一個單獨的文件,但只支持最最新的移動設備。
  • CSS:我認爲格式不夠複雜,無法得到我所需要的。
  • PDF:開源庫必須包含在環境中。如果有一個好的選擇,我寧願不這樣做。

所以這就是爲什麼我在看JavaScript。但第一個問題是,JavaScript格式/顯示存在於同一文件中的XML數據?如果是這樣,怎麼樣?

+0

XML只是一種標記語言,它不打算直接查看HTML以外的內容。它也沒有嵌入圖像或資源的簡單機制,HTML更適合。 Javascript可以幫助您操作文檔,它與顯示無關。如果你想要一個獨立於設備的**文檔**,那麼PDF是一個更好的選擇。對於任何設備都有很多瀏覽器,並且在某些環境中本機支持。 – RobG

+0

我懷疑我會被卡在PDF中。 – user877576

回答

0

你想做些奇怪的事情。您不能將單個JavaScript或CSS文件用作包含圖像的可讀文檔。這是不可能的。爲什麼你不只是使用HTML?您可以在HTML頁面上包含CSS和JavaScript,並獲得您想要的幾乎任何外觀和行爲。 HTML可以用作單個文件。圖像可以使用data:uri包含在HTML頁面中。

0

它認爲服務器端選項(例如服務器端XSLT)會更可取,但如果這樣做不可用,那麼您可以使用Javascript或JQuery解析XML文檔。有關如何使用JQuery執行此操作的簡單示例,請參閱此處:http://api.jquery.com/jQuery.parseXML/。該示例從XML中獲取「title」元素,並將其添加到ID爲「somelement」的HTML元素。

var xml = ""; // TODO get your xml here 
var xmlDoc = $.parseXML(xml); 
var $xml = $(xmlDoc); 
var title = $xml.find("title"); 
$("#someelement").text(title); 

如果您使用的是簡單的Javascript,那麼您可以像解析HTML一樣解析XML。例如,假設你有這樣的XML:

然後你就可以解析XML文檔,像這樣:

var items = myXml.getElementsByTagName('item'); 
var text = items[0].getAttribute('text'); 
$("#someelement").text(text); 

希望幫助...

相關問題