On 2012-12-11 17:47, nenad.ci...@gmail.com wrote:
Hello, I have posted the same in XML group but it seems pretty dead there so I 
will repost here.

I am new to xml processing in python.
I am looking to create XML. Xml is not too difficult so I thought to create it 
manually using ElementTree.
First I noted that ET.toString does escape <>& but not " and '
Is that normal?

" needs to be encoded when it's in an attribute's value:

    <tag value="a quote (&quot;)">

because it's also being used as a delimiter in that case, but elsewhere
it has no special meaning.

Since I have also the need to sign the XML I need the ability to create xml but 
without xml escaping (unescaped data are signed).

XML with the escaping isn't valid XML.

If i do ET.toString(root,'utf8',text') i do not get the xml tags and if I do 
ET.toString(root,'utf8') I get escaped chars.
For example:
a=ET.Element('a')
b=ET.SubElement(a,'b')
b.text=u"šđ<>&"

ET.tostring(a,'utf8')
outputs to
"<?xml version='1.0' 
encoding='utf8'?>\n<a><b>\xc5\xa1\xc4\x91&lt;&gt;&amp;</b></a>"

ET.tostring(a,'utf8',method='text')
outputs to
"\xc5\xa1\xc4\x91<>&"

and I need before singing
<a><b>\xc5\xa1\xc4\x91<>&</b></a>
and after signing
<a><b>\xc5\xa1\xc4\x91&lt;&gt;&amp;</b></a>

Is there some way other than string replace?


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to