[issue36407] xml.dom.minidom wrong indentation writing for CDATA section

2019-03-23 Thread Vladimir Surjaninov

New submission from Vladimir Surjaninov :

If we are writing xml with CDATA section and leaving non-empty indentation and 
new-line parameters, a parent node of the section will contain useless 
indentation, that will be parsed as a text.

Example:
>>>doc = minidom.Document()
>>>root = doc.createElement('root')
>>>doc.appendChild(root)
>>>node = doc.createElement('node')
>>>root.appendChild(node)
>>>data = doc.createCDATASection('')
>>>node.appendChild(data)
>>>print(doc.toprettyxml(indent=‘  ‘ * 4)






If we try to parse this output doc, we won’t get CDATA value correctly.

Following code returns a string that contains only indentation characters:
>>>doc = minidom.parseString(xml_text)
>>>doc.getElementsByTagName('node')[0].firstChild.nodeValue

Returns a string with CDATA value and indentation characters:
>>>doc.getElementsByTagName('node')[0].firstChild.wholeText


But we have a workaround:
>>>data.nodeType = data.TEXT_NODE
…
>>>print(doc.toprettyxml(indent=‘  ‘ * 4)





It will be parsed correctly:
>>>doc.getElementsByTagName('node')[0].firstChild.nodeValue


But I think it will be better if we fix the writing function, which would set 
this as default behavior.

--
components: XML
messages: 338681
nosy: vsurjaninov
priority: normal
severity: normal
status: open
title: xml.dom.minidom wrong indentation writing for CDATA section
type: enhancement

___
Python tracker 
<https://bugs.python.org/issue36407>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue36407] xml.dom.minidom wrong indentation writing for CDATA section

2019-03-23 Thread Vladimir Surjaninov


Change by Vladimir Surjaninov :


--
keywords: +patch
pull_requests: +12465
stage:  -> patch review

___
Python tracker 
<https://bugs.python.org/issue36407>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com