Could you explain a bit more about your intentions? What is the code doing?
I understand that the XML data is in a file that you parse, but where is
the data going afterwards? Do you use it in your program? Do you save it
back into a file?
Stefan
_______________________________________________
XML-SIG maillist - XML...@python.org
http://mail.python.org/mailman/listinfo/xml-sig
o = open('data.xml')
o.write(xmldoc.toxml())
o.close()
On Wed, Sep 16, 2009 at 9:58 AM, Abhishek Kane <abhish...@gmail.com> wrote:
> <?xml version='1.0'?>
> <main_tag>
>
> <service name='abc' version='1'>
> <instance name='default' value='false'/>
> </service>
> <service name='xyz' version='2'>
> <instance name='default' value='false'/>
> </service>
>
> </main_tag>
>
>
> is how the XML file looks like. I want to modify the value of instance
> based on the service name.
>
> So if i search for abc service & modify instance value like follows :
>
>
> import sys, logging, traceback
> from xml.dom import minidom
>
> data_file = "/tmp/data.xml"
>
> def main():
> try:
> xmldoc = minidom.parse(data_file)
> except IOError:
> print "err"
> sys.exit(1)
>
> start = xmldoc.firstChild
>
> for element in xmldoc.getElementsByTagName("service"):
> service = element.getAttribute("name")
> print service
> if service == "abc":
> for instance in element.childNodes:
> if instance.nodeType == 1:
> print instance.getAttribute("value")
> instance.setAttribute("value", "true")
> print instance.getAttribute("value")
>
> if __name__ == "__main__":
> logging.basicConfig(filename=log_file,level=logging.DEBUG)
> main()
>
> The first print gives false & later one gives true. But the data.xml remains
> unchanged. How can I modify the node in data.xml?
>
> Thanks,
> Abhishek
>
> On Wed, Sep 16, 2009 at 9:47 PM, Josh English <joshua.r...@gmail.com>
> wrote:
>>
>> If you are just searching for XML nodes, you are searching. If you are
>> interpreting them into something new, you are parsing.
>>
>> If you want to change an attribute, parse the XML file and make changes
>> there.
>>
>> Either that, or read the node attribute that you are given, make the
>> changes you need, but don't bother with writing a new XML file.
>>
>> Perhaps a sample of what you are trying to do would help up see the
>> solution.
>> --
>> Josh English
>> Joshua.R...@gmail.com
>> http://joshenglish.livejournal.com
>
>
>
> --
> No defeat is final; until u stop fighting.
> - AGK
>
>
--
Josh English
Joshua.R...@gmail.com
http://joshenglish.livejournal.com