Search code examples
pythonxmlstylesheetminidomprocessing-instruction

How to add an xml-stylesheet processing instruction node with Python 2.6 and minidom?


I'm creating an XML document using minidom - how do I ensure my resultant XML document contains a stylesheet reference like this:

<?xml-stylesheet type="text/xsl" href="mystyle.xslt"?>

Thanks !


Solution

  • Use something like this:

    from xml.dom import minidom
    
    xml = """
    <root>
     <x>text</x>
    </root>""" 
    
    dom = minidom.parseString(xml)
    pi = dom.createProcessingInstruction('xml-stylesheet',
                                         'type="text/xsl" href="mystyle.xslt"')
    root = dom.firstChild
    dom.insertBefore(pi, root)
    print dom.toprettyxml()
    

    =>

    <?xml version="1.0" ?>
    <?xml-stylesheet type="text/xsl" href="mystyle.xslt"?>
    <root>
    
       <x>
          text
       </x>
    
    </root>