diff --git a/README.md b/README.md
index 2296a02..2840a73 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ Please refer to the linked documentation for instructions on how to get started
## Not Implemented
- Support for the [(beta) document translation endpoint](https://www.deepl.com/docs-api/translating-documents/).
-- Support for the [XML handling flags](https://www.deepl.com/docs-api/translating-text/) in the translation endpoint.
+- Support for advanced parameters of [Handling XML](https://www.deepl.com/docs-api/handling-xml/) in the translation endpoint (outline_detection, splitting_tags, non_splitting_tags, ignore_tags).
## See Also
diff --git a/deepl_api/__init__.py b/deepl_api/__init__.py
index 7a7d08a..5655f56 100644
--- a/deepl_api/__init__.py
+++ b/deepl_api/__init__.py
@@ -171,6 +171,7 @@ def translate(
split_sentences: SplitSentences = None,
preserve_formatting: bool = None,
formality: Formality = None,
+ handle_xml: bool = None,
texts: list,
) -> list:
"""
@@ -208,6 +209,9 @@ def translate(
if formality != None:
payload["formality"] = formality.value
+
+ if handle_xml:
+ payload["tag_handling"] = "xml"
data = self._api_call("/translate", payload)
diff --git a/deepl_api/cli.py b/deepl_api/cli.py
index 358409e..ae23888 100644
--- a/deepl_api/cli.py
+++ b/deepl_api/cli.py
@@ -66,6 +66,7 @@ def languages():
@click.option("-p", "--preserve-formatting", default=None, is_flag=True)
@click.option("-m", "--formality-more", default=None, is_flag=True)
@click.option("-l", "--formality-less", default=None, is_flag=True)
+@click.option("-x", "--handle-xml", default=None, is_flag=True)
def translate(
source_language,
target_language,
@@ -74,6 +75,7 @@ def translate(
preserve_formatting,
formality_more,
formality_less,
+ handle_xml
):
try:
deepl = _get_instance()
@@ -94,6 +96,7 @@ def translate(
target_language=target_language,
preserve_formatting=preserve_formatting,
formality=formality,
+ handle_xml=handle_xml,
texts=[text],
)
diff --git a/tests/test_deepl_api.py b/tests/test_deepl_api.py
index 81ffbed..fdcc1a5 100644
--- a/tests/test_deepl_api.py
+++ b/tests/test_deepl_api.py
@@ -102,6 +102,33 @@ def test_translate():
},
],
},
+ {
+ "args": {
+ "source_language": "EN",
+ "target_language": "FR",
+ "handle_xml": True,
+ "texts": ["A delicious apple."],
+ },
+ "result": [
+ {
+ "detected_source_language": "EN",
+ "text": "Une pomme délicieuse.",
+ },
+ ],
+ },
+ {
+ "args": {
+ "source_language": "EN",
+ "target_language": "FR",
+ "texts": ["A delicious apple."],
+ },
+ "result": [
+ {
+ "detected_source_language": "EN",
+ "text": "Une délicieuse pomme.",
+ },
+ ],
+ },
]
for test in tests: