Hi, Stefan Behnel wrote: > Alexandro Colorado wrote: >> So basically this is what I want, I want to progamatically be able to >> change the atribute of an XML: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument >> 1.0//EN" "toolbar.dtd"> >> <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" >> xmlns:xlink="http://www.w3.org/1999/xlink"> >> <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/> >> .... >> </toolbar:toolbar> >> >> I want to change the toolbar:visible atribute from false to true >> preffering to use minidom. > > In case minidom is not a requirement, you can use lxml.etree: > > >>> import lxml.etree as et > >>> finditems = et.XPath("//tb:[EMAIL PROTECTED]:visible = 'false']", > {'tb' : "http://openoffice.org/2001/toolbar"}) > >>> tree = et.parse("myfile.xml") > >>> for toolbaritem in finditems(tree): > ... toolbaritem.set( > ... "{http://openoffice.org/2001/toolbar}visible", "true") > > > http://codespeak.net/lxml/
Ah, BTW, if you need something that runs under an older Python version (I assume you want it to run in OOo), here's a solution that also runs with ElementTree (which can be installed on Python 1.5 and later). lxml requires at least Python 2.3. >>> import elementtree.ElementTree as et >>> TBNS = "{http://openoffice.org/2001/toolbar}" >>> tree = et.parse("myfile.xml") >>> for tbitem in tree.getiterator(TBNS+"toolbaritem"): ... if tbitem.get(TBNS+"visible") == "false": ... tbitem.set(TBNS+"visible", "true") Have fun, Stefan _______________________________________________ XML-SIG maillist - XML-SIG@python.org http://mail.python.org/mailman/listinfo/xml-sig