diff --git a/lib/src/minio.dart b/lib/src/minio.dart
index 885cf9e28b24146aff4d29819e773f422e154c82..bd89beaa3a1078d94388316674ff779dc71de376 100644
--- a/lib/src/minio.dart
+++ b/lib/src/minio.dart
@@ -125,7 +125,7 @@ class Minio {
     );
     validate(resp, expect: 200);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     final errorNode = node.findAllElements('Error');
     if (errorNode.isNotEmpty) {
       final error = Error.fromXml(errorNode.first);
@@ -175,7 +175,7 @@ class Minio {
 
     validate(resp);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     final result = CopyObjectResult.fromXml(node.rootElement);
     result.eTag = trimDoubleQuote(result.eTag);
     return result;
@@ -227,7 +227,7 @@ class Minio {
 
     validate(resp, expect: 200);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     return NotificationConfiguration.fromXml(node.rootElement);
   }
 
@@ -264,7 +264,7 @@ class Minio {
 
     validate(resp);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
 
     var location = node.findAllElements('LocationConstraint').first.text;
     if (location == null || location.isEmpty) {
@@ -340,7 +340,7 @@ class Minio {
 
     validate(resp, expect: 200);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     return node.findAllElements('UploadId').first.text;
   }
 
@@ -411,7 +411,7 @@ class Minio {
 
     validate(resp);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     return ListMultipartUploadsOutput.fromXml(node.root);
   }
 
@@ -440,7 +440,8 @@ class Minio {
       method: 'GET',
       region: 'us-east-1',
     );
-    final bucketsNode = xml.parse(resp.body).findAllElements('Buckets').first;
+    final bucketsNode =
+        xml.XmlDocument.parse(resp.body).findAllElements('Buckets').first;
     return bucketsNode.children.map((n) => Bucket.fromXml(n)).toList();
   }
 
@@ -506,7 +507,7 @@ class Minio {
 
     validate(resp);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     final isTruncated = getNodeProp(node.rootElement, 'IsTruncated')?.text;
     final nextMarker = getNodeProp(node.rootElement, 'NextMarker')?.text;
     final objs = node.findAllElements('Contents').map((c) => Object.fromXml(c));
@@ -585,7 +586,7 @@ class Minio {
 
     validate(resp);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     final isTruncated = getNodeProp(node.rootElement, 'IsTruncated')?.text;
     final nextContinuationToken =
         getNodeProp(node.rootElement, 'NextContinuationToken')?.text;
@@ -642,7 +643,7 @@ class Minio {
 
     validate(resp);
 
-    final node = xml.parse(resp.body);
+    final node = xml.XmlDocument.parse(resp.body);
     return ListPartsOutput.fromXml(node.root);
   }
 
diff --git a/lib/src/minio_helpers.dart b/lib/src/minio_helpers.dart
index 0f76f98fd8da708a225fb1ef6e34d5f542f49f9c..b8d2e381b4993c16fd4936aef317a1b9fd49aa47 100644
--- a/lib/src/minio_helpers.dart
+++ b/lib/src/minio_helpers.dart
@@ -203,7 +203,7 @@ Future<void> validateStreamed(
 }) async {
   if (streamedResponse.statusCode >= 400) {
     final response = await Response.fromStream(streamedResponse);
-    final body = xml.parse(response.body);
+    final body = xml.XmlDocument.parse(response.body);
     final error = Error.fromXml(body.rootElement);
     throw MinioS3Error(error.message, error, response);
   }
@@ -217,7 +217,7 @@ Future<void> validateStreamed(
 
 void validate(Response response, {int expect}) {
   if (response.statusCode >= 400) {
-    final body = xml.parse(response.body);
+    final body = xml.XmlDocument.parse(response.body);
     final error = Error.fromXml(body.rootElement);
     throw MinioS3Error(error.message, error, response);
   }
diff --git a/pubspec.yaml b/pubspec.yaml
index 650954c97b57fe89fb788cd5e8190069f4ec02ac..e1914f15ee48a92b77be31183849a2e952174341 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -12,7 +12,7 @@ dependencies:
   http: ^0.12.0+4
   crypto: ^2.1.4
   convert: ^2.1.1
-  xml: ^4.0.0
+  xml: ^4.2.0
   buffer: ^1.0.6
   intl: ^0.16.1
   mime: ^0.9.6+3