From 63faa54ebb9f813fbf11cb16754758a7e5578e75 Mon Sep 17 00:00:00 2001 From: Andrew Paseltiner Date: Thu, 20 Jun 2024 08:25:52 -0400 Subject: [PATCH] Disable smart_strings in XPath results Instead of replacing them after the fact. --- se/easy_xml.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/se/easy_xml.py b/se/easy_xml.py index c6d3eb37..01b2500f 100644 --- a/se/easy_xml.py +++ b/se/easy_xml.py @@ -101,16 +101,12 @@ def xpath(self, selector: str, return_string: bool = False): result: List[Union[str, EasyXmlElement, float]] = [] try: - query_result = self.etree.xpath(selector, namespaces=self.namespaces) - if isinstance(query_result, etree._ElementUnicodeResult): # pylint: disable=protected-access - result.append(str(query_result)) - elif isinstance(query_result, float): + query_result = self.etree.xpath(selector, namespaces=self.namespaces, smart_strings=False) + if isinstance(query_result, str|float): result.append(query_result) else: for element in query_result: - if isinstance(element, etree._ElementUnicodeResult): # pylint: disable=protected-access - result.append(str(element)) - elif isinstance(element, str): + if isinstance(element, str): result.append(element) else: result.append(EasyXmlElement(element, self.namespaces)) @@ -375,16 +371,12 @@ def xpath(self, selector: str, return_string: bool = False): result: List[Union[str, EasyXmlElement, float]] = [] - query_result = self.lxml_element.xpath(selector, namespaces=self.namespaces) - if isinstance(query_result, etree._ElementUnicodeResult): # pylint: disable=protected-access - result.append(str(query_result)) - elif isinstance(query_result, float): + query_result = self.lxml_element.xpath(selector, namespaces=self.namespaces, smart_strings=False) + if isinstance(query_result, str|float): result.append(query_result) else: for element in query_result: - if isinstance(element, etree._ElementUnicodeResult): # pylint: disable=protected-access - result.append(str(element)) - elif isinstance(element, str): + if isinstance(element, str): result.append(element) else: result.append(EasyXmlElement(element, self.namespaces))