PYTHON 2.6 XML.ETREE to output single quote for at

2020-07-24 05:48发布

问题:

i got the following code :

#!/usr/bin/python2.6  

from lxml import etree  

n = etree.Element('test')    
n.set('id','1234')  
print etree.tostring(n)  

the output generate is <test id="1234"/>
but i want <test id='1234'/>

can someone help ?

回答1:

I checked the documentation and found no reference for single/double-quote option.

I think your only recourse is print etree.tostring(n).replace('"', "'")

Update

Given:

from lxml import etree
n = etree.Element('test')
n.set('id', "Zach's not-so-good answer")

my original answer could output malformed XML because of unbalanced apostrophes:

<test id='Zach's not-so-good answer'></test>

Martijn suggested print etree.tostring(n).replace("'", '&apos;').replace('"', "'") to address the problem:

<test id='Zach&apos;s not-so-good answer'></test>