XML的方法 第1部分 XML不是字串

2021-10-07 05:40:18 字數 1877 閱讀 9601

從計算的角度來看,它是一種成熟的產品,具有悠久的歷史。

那麼,有什麼我可以新增到該主題的新東西嗎?

xml的處理方式實際上取決於您和您的情況,重點是 情況 。

在乙個極端情況下,您可能會參與乙個舒適的「內部」專案,其中乙個內部系統必須與另乙個系統對話。

在另一種極端情況下,您處於一種xml模式下,這種模式將有一天包含系統和其他國家的系統之間的對話,該系統由一組不同的開發人員編寫,在遙遠的國家/地區。

像往常一樣,為了演示xml的不同方法,我將採用乙個完全人為的和令人髮指的方案,在這種情況下,您正在為pete的perfect pizza

1工作 ,這是一條在大街小巷的小商店,皮特有很大的想法,他要做的第一件事就是自動將前台的訂單傳送到廚房,他要您編寫一些**。 您的大主意是為此使用xml,然後匆忙在紙上寫下您的主意,並與pete達成一致…

<?xml version='1.0' encoding='utf-8'?>

capricciosa

thin

2

pete's是一家非常小的公司,您最終需要對前台訊息生成器和廚房xml解析器**進行編碼。 這是您第一次嘗試xml,並為您提供了廚房解析器**:

public class orderpizza 

@test

public void readorderfromxml()

}

它上線了,一切都很好…。

時間流逝, pete的perfect pizza開始擴大。 前台應用程式需要進行一些調整,pete會加入另乙個開發人員。 新開發人員要做的第一件事是確定擺脫xml訊息中的空白字元並向廚房傳送類似以下**的效率更高:

<?xml version='1.0' encoding='utf-8'?>capricciosa

thin

2

<?xml version='1.0' encoding='utf-8'?>

2005-01-01

monthly

0.8 page1/

2006-01-02

weekly

0.8

…但它同樣可以返回以下內容:

<?xml version='1.0' encoding='utf-8'?>

2005-01-01

monthly

0.8page1/

2006-01-02

weekly

0.8

…或這個:

<?xml version='1.0' encoding='utf-8'?>

2005-01-01

monthly

0.8page1/

2006-01-02

weekly

0.8

…而且它們都是有效的,等同的並且包含相同的資訊。 只是它們的字串表示形式有所不同並且放在一起,它們強調了xml的第乙個規則,即xml不是string。

回到pete的perfect pizza ,您想知道當pete進來並要求增強功能時如何修復**。 他希望您改進系統,以便您的xml文件一次可以訂購多個披薩。 您意識到字串處理已經出來了,並且在internet上遇到了sax解析,但是在另一時間卻更多。

1使用google,您會發現全球有四頁的pete's perfect pizza價值。 這個故事是虛構的,與它們的任何相似之處純屬巧合。

2通過閱讀訂單xml,您可能會猜到我最喜歡的披薩是capricciosa,而有史以來最好的披薩可從pizza margherita獲得

可從github上獲得源**:

git:

參考:

XML的方法 第2部分 SAX呢?

而是乙個可以使用字串表示的物件導向的文件模型。今天的部落格使用我的 pete的 完 美披薩 場景 繼續了此討論 如果你還記得的話,皮特只是把頭撞在門上 並要求您增強系統,以便前台可以在單個xml訊息中傳送多個披薩的訂單。您知道您的簡單字串解析 有缺陷,不會割裂芥末,因此您 在xml上使用了 goog...

Hibernate硬事實第1部分

hibernate是乙個廣泛使用的orm框架。許多組織在其專案中使用它來管理其資料訪問層。但是,許多使用hibernate的開發人員並不完全了解其功能的全部內容。這是第1 週後在hibernate中鐵的事實集中series.other職位包括 hibernate硬事實第1部分 本文 hibernat...

MySQL系列,第1部分 Mysql簡介

mysql是乙個關係型資料庫管理系統 由瑞典 mysql ab 公司開發,目前屬於 oracle 公司。mysql 最流行的關係型資料庫管理系統 在 web 應用方面 mysql 是最好的 rdbms relational database management system,關聯式資料庫管理系統 ...