1. 程式人生 > >XML+JSON面試題都在這裏

XML+JSON面試題都在這裏

定位 遠程服務 進行 是什麽 話費 常見 帶寬 我們 另一個

XML+JSON常見面試題

什麽是JSON和XML

什麽是JSON和XML

JSON:JavaScript Object Notation 【JavaScript 對象表示法】.

XML:extensiable markup language 被稱作可擴展標記語言

JSON和XML都是數據交換語言,完全獨立於任何程序語言的文本格式。

JSON與XML區別是什麽? 有什麽共同點

JSON與XML區別是什麽? 有什麽共同點

共同點:

  • 用於RPC遠程調用數據交換格式
    • RPC遠程調用簡單理解:調用本地服務一樣調用遠程服務
    • 具體可參考@用心閣的答案:https://www.zhihu.com/question/25536695和@鄭大俠的答案:https://www.zhihu.com/question/25536695/answer/134976748

    • RPC服務與HTTP服務對比:http://blog.csdn.net/wangyunpeng0319/article/details/78651998

區別:

  • XML文件格式復雜,比較占寬帶,服務器端與客戶端解析xml話費較多的資源和時間.
  • JSON文件格式壓縮,占寬帶小

JSON、XML解析有那些方式?

JSON、XML解析有那些方式?

  • JSON解析方式(阿裏巴巴fastjson、谷歌gson,jackJson)
  • XML解析方式(dom、sax、pul)

XML和JSON優缺點

XML的優點

  • A.格式統一,符合標準;
  • B.容易與其他系統進行遠程交互,數據共享比較方便

XML的缺點

  • A.XML文件龐大,文件格式復雜,傳輸占帶寬;
  • B.服務器端和客戶端都需要花費大量代碼來解析XML,導致服務器端和客戶端代碼變得異常復雜且不易維護;
  • C.客戶端不同瀏覽器之間解析XML的方式不一致,需要重復編寫很多代碼;
  • D.服務器端和客戶端解析XML花費較多的資源和時間。

JSON的優點

  • A.數據格式比較簡單,易於讀寫,格式都是壓縮的,占用帶寬小;
  • B.易於解析,客戶端JavaScript可以簡單的通過eval_r()進行JSON數據的讀取;
  • C.支持多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服務器端語言,便於服務器端的解析;
  • D.因為JSON格式能直接為服務器端代碼使用,大大簡化了服務器端和客戶端的代碼開發量,且完成任務不變,並且易於維護

JSON的缺點

  • A.沒有XML格式這麽推廣的深入人心和喜用廣泛,沒有XML那麽通用性;
  • B.JSON片段的創建和驗證過程比一般的XML稍顯復雜。

參考:http://www.cnblogs.com/SanMaoSpace/p/3139186.html

XPath 是什麽

XPath 是什麽

XPath 是用於從 XML 文檔檢索元素的 XML 技術。XML 文檔是結構化的,因此 XPath 可以從 XML 文件定位和檢索元素、屬性或值。從數據檢索方面來說,XPath與 SQL 很相似,但是它有自己的語法和規則。了解更多查看怎樣使用 XPath 從 XML 文檔中檢索數據

XML 命名空間是什麽?它為什麽很重要

XML 命名空間是什麽?它為什麽很重要

XML 命名空間與 Java 的 package 類似,用來避免不同來源名稱相同的標簽發生沖突。XML 命名空間在 XML 文檔頂部使用 xmlns 屬性定義,語法為 xmlns:prefix=’URI’。prefix 與XML 文檔中實際標簽一起使用。

下面例子為 XML 命名空間的使用。


<root xmlns:inst="http://instruments.com/inst"
<inst:phone>
<inst:number>837363223</inst:number>
</inst:phone>
</root>

DOM 和 和 SAX 解析器有什麽區別

DOM 和 和 SAX 解析器有什麽區別

  • DOM解析讀取整個XML文檔,在內存中形成DOM樹,很方便地對XML文檔的內容進行增刪改。但如果XML文檔的內容過大,那麽就會導致內存溢出!
  • SAX解析采用部分讀取的方式,可以處理大型文件,但只能對文件按順序從頭到尾解析一遍,不支持文件的增刪改操作
  1. DOM是基於內存的,不管文件有多大,都會將所有的內容預先裝載到內存中。從而消耗很大的內存空間。而SAX是基於事件的。當某個事件被觸發時,才獲取相應的XML的部分數據,從而不管XML文件有多大,都只占用了少量的內存空間。
  2. DOM可以讀取XML也可以向XML文件中插入數據,而SAX卻只能對XML進行讀取,而不能在文件中插入數據。這也是SAX的一個缺點。
  3. SAX的另一個缺點:DOM我們可以指定要訪問的元素進行隨機訪問,而SAX則不行。SAX是從文檔開始執行遍歷的。並且只能遍歷一次。也就是說我們不能隨機的訪問XML文件,只能從頭到尾的將XML文件遍歷一次(當然也可以中間截斷遍歷)。

XSLT 是什麽?

XSLT 是什麽?

XSLT 也是常用的 XML 技術, 用於將一個 XML 文件轉換為另一種 XML,HTML 或者其他的格式。XSLT 為轉換 XML 文件詳細定義了自己的語法,函數和操作符。通常由 XSLT 引擎完成轉換,XSLT 引擎讀取 XSLT 語法編寫的 XML 樣式表或者 XSL 文件的指令。XSLT 大量使用遞歸來執行轉換。一個常見 XSLT 使用就是將 XML 文件中的數據作為 HTML 頁面顯示。XSLT 也可以很方便地把一種 XML 文件轉換為另一種 XML 文檔.

如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章的同學,可以關註微信公眾號:Java3y

XML+JSON面試題都在這裏