diff --git a/libs/langchain/langchain/output_parsers/xml.py b/libs/langchain/langchain/output_parsers/xml.py index 16dde71acc..8ffe4167b6 100644 --- a/libs/langchain/langchain/output_parsers/xml.py +++ b/libs/langchain/langchain/output_parsers/xml.py @@ -22,6 +22,8 @@ class XMLOutputParser(BaseOutputParser): encoding_match = self.encoding_matcher.search(text) if encoding_match: text = encoding_match.group(2) + + text = text.strip() if (text.startswith("<") or text.startswith("\n<")) and ( text.endswith(">") or text.endswith(">\n") ): diff --git a/libs/langchain/tests/unit_tests/output_parsers/test_xml_parser.py b/libs/langchain/tests/unit_tests/output_parsers/test_xml_parser.py index c26fa57912..3830d25f8d 100644 --- a/libs/langchain/tests/unit_tests/output_parsers/test_xml_parser.py +++ b/libs/langchain/tests/unit_tests/output_parsers/test_xml_parser.py @@ -4,7 +4,7 @@ import pytest from langchain.output_parsers.xml import XMLOutputParser DEF_RESULT_ENCODING = """ - + slim.shady