2011-05-19 76 views
2

G'day全部,在JavaScript中解析XML文件如何。大文件可能使用SAX?

我拉我的頭髮,頭痛,我的眼睛受傷。我一直在這裏,我似乎到了哪裏。

這將是我的第一次使用xml的經驗,並且真的想讓這個工作。這是一個大文件。在我眼裏大+5mb。我無法想象這個文件會被加載到內存中進行處理。用戶會對此有所瞭解。

基本上我們使用第三方網站來做我們的電子商務。所以我們沒有通過管理區域訪問數據庫。

我們要做的是確保地址沒有東西。因此,我們得到了與地區拼湊此XML文件列出所有郵政編碼,並指出:

<?xml version="1.0"?> 
<POSTCODES> 
    <PostCode id="2035"> 
     <Area>2035 1</Area> 
     <Area>2035 2</Area> 
     <Area>2035 3</Area> 
     <State>NSW</State> 
    </Postcode> 
    <PostCode id="2038"> 
     <Area>2038 1</Area> 
     <Area>2038 2</Area> 
     <Area>2038 3</Area> 
     <State>NSW</State> 
    </Postcode> 
    <PostCode id="2111"> 
     <Area>2111 1</Area> 
     <Area>2111 2</Area> 
     <Area>2111 3</Area> 
     <State>NSW</State> 
    </Postcode> 
</POSTCODES> 

有人建議SAX但是當問及如何突然死亡?除非我看起來不正確,否則網絡無法提供幫助。我看到很多例子。要麼他們不顯示如何讀取文件,而是從textarea中讀取,或者使用java中的示例。

我們想要什麼?用戶輸入2038的郵政編碼。我們想要使用該數據轉到JavaScript,並將該郵政編碼中的所有郊區都返回給我們。

任何人都可以請告訴我要下載什麼,以及如何使用它來獲得我所需要的?

請,請。很難看到一個長大的男人乞討和哭泣,但我是。

回答

2

聽起來就像你想在服務器上的腳本,根據用戶的郵政編碼選擇建議郊區?你可以使用jQuery的ajax功能來做到這一點。

您可能還可以使用jQueryUI的的自動完成控制解析XML和提出建議:http://jqueryui.com/demos/autocomplete/#xml

它也可以在JavaScript中完全做到這一點沒有在服務器端的任何腳本,但它會在相當緩慢如果XML文件是5MB,則加載。通過在從服務器傳輸之前對它進行gzip壓縮,您可能會大大減少文件大小。

+0

+1 - 在JavaScript中執行此操作將會不太合適。僅僅因爲你'可以'以某種方式做事並不意味着你應該這樣做。 最糟糕的是,您可以設置外部服務器並使用JSONp跨域移動數據。 – 2011-05-19 02:23:31

相關問題