Dart包


包是一種封裝一組程式設計單元的機制。應用程式有時可能需要整合某些第三方庫或外掛。每種語言都有一種機制來管理外部軟體包,如Maven或Gradle for Java,Nuget for .NET,npm for Node.js等。Dart的軟體包管理器是pub

Pub有助於在儲存庫中安裝包。託管軟體包的儲存庫可以在 https://pub.dartlang.org/ 找到。

包後設資料在檔案pubsec.yaml中定義。YAML是Yet Another Markup Language的縮寫。pub工具可用於下載應用程式所需的所有各種庫。

每個Dart應用程式都有一個pubspec.yaml檔案,其中包含對其他庫的應用程式依賴性以及應用程式的後設資料,如應用程式名稱,作者,版本和描述。

pubspec.yaml檔案的內容應該如下所示 -

name: 'vector_victor' 
version: 0.0.1 
description: An absolute bare-bones web app. 
... 
dependencies: browser: '>=0.10.0 <0.11.0'

pub的一些重要命令如下 -

編號 命令 描述
1 pub get 獲取應用程式所依賴的所有包。
2 pub upgrade 將所有依賴項升級到較新版本。
3 pub build 用於構建您的Web應用程式,它將建立一個構建檔案夾,其中包含所有相關指令碼。
4 pub help 將提供所有pub命令的幫助。

如果使用的是WebStorm IDE,那麼可以右鍵單擊pubspec.yaml直接獲取所有命令 -

WebStorm IDE

安裝包

考慮應用程式需要解析xml的範例。Dart XML是一個輕量級的庫,它是開源的,可以穩定地解析,遍歷,查詢和構建XML文件。

完成上述任務的步驟如下 -

第1步 - 將以下內容新增到pubsec.yaml檔案中。

name: TestApp 
version: 0.0.1 
description: A simple console application. 
#dependencies: 
#  foo_bar: '>=1.0.0 <2.0.0' 
dependencies: https://mail.google.com/mail/u/0/images/cleardot.gif
xml:

右鍵單擊pubsec.yaml並獲取依賴項。它將在內部觸發pub get命令,如下所示 -

可以在packages檔案夾下驗證下載的包及其相關包。

包示例

由於安裝現在已經完成,需要在專案中參照dart xml。語法如下 -

import 'package:xml/xml.dart' as xml;

讀取XML字串

要讀取XML字串並驗證輸入,Dart XML使用parse()方法。語法如下 -

xml.parse(String input):

範例:解析XML字串輸入

以下範例顯示如何解析XML字串輸入 -

import 'package:xml/xml.dart' as xml; 
void main(){ 
   print("xml"); 
   var bookshelfXml = '''<?xml version = "1.0"?> 
   <bookshelf> 
      <book> 
         <title lang = "english">Growing a Language</title> 
         <price>29.99</price> 
      </book> 

      <book> 
         <title lang = "english">Learning XML</title> 
         <price>39.95</price> 
      </book> 
      <price>132.00</price> 
   </bookshelf>'''; 

   var document = xml.parse(bookshelfXml); 
   print(document.toString()); 
}

執行上面範例程式碼,得到以下結果 -

<?xml version = "1.0"?><bookshelf> 
   <book> 
      <title lang = "english">Growing a Language</title> 
      <price>29.99</price> 
   </book> 

   <book> 
      <title lang = "english">Learning XML</title> 
      <price>39.95</price> 
   </book> 
   <price>132.00</price> 
</bookshelf>