Fix superfluous CDATA tokens
This commit is contained in:
35
sia/util.py
35
sia/util.py
@@ -23,12 +23,6 @@ def stop_before_value(iterator: Iterator[str], stop_value: str) -> Iterator[str]
|
||||
break
|
||||
yield item
|
||||
|
||||
def escape_text_for_xml(text: str) -> str:
|
||||
"""Convert any value to string representation for XML storage."""
|
||||
if text is None:
|
||||
return ''
|
||||
return str(text)
|
||||
|
||||
def pretty_print_element(elem: ET.Element, level: int = 0, max_line: int = 80) -> str:
|
||||
"""Convert ElementTree element to pretty-printed string with custom formatting."""
|
||||
indent = ' ' * level
|
||||
@@ -72,31 +66,4 @@ def pretty_print_element(elem: ET.Element, level: int = 0, max_line: int = 80) -
|
||||
parts.append(f'{indent} {child.tail}')
|
||||
|
||||
parts.append(f'{indent}</{tag}>')
|
||||
return '\n'.join(parts)
|
||||
|
||||
def escape_text_for_xml(text: str) -> str:
|
||||
"""
|
||||
Convert any text value to a properly escaped XML string.
|
||||
|
||||
Args:
|
||||
text: Text to escape, can be string, number, or None
|
||||
|
||||
Returns:
|
||||
str: XML-escaped string representation
|
||||
"""
|
||||
if text is None:
|
||||
return ''
|
||||
|
||||
# Convert numbers to strings
|
||||
text_str = str(text)
|
||||
|
||||
# Standard XML escaping if string contains CDATA end sequence
|
||||
if ']]>' in text_str:
|
||||
return text_str.replace('&', '&') \
|
||||
.replace('<', '<') \
|
||||
.replace('>', '>') \
|
||||
.replace('"', '"') \
|
||||
.replace("'", ''')
|
||||
|
||||
# Otherwise wrap in CDATA
|
||||
return f'<![CDATA[{text_str}]]>'
|
||||
return '\n'.join(parts)
|
||||
Reference in New Issue
Block a user