Re: using minidom

Stefan Behnel <[email protected]>
Newsgroups gmane.comp.python.xml
Message-ID <[email protected]>
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:toolbaritem[@tb: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  -  [email protected]
http://mail.python.org/mailman/listinfo/xml-sig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.