XML dom question

George buffer_88 at hotmail.com
Fri Oct 14 21:16:59 EDT 2005


How can I do the following in python:

compare the text in the element tags <li> with the elements
tags in filling and if they match replace the text within the elements
tags <li> with the text in the matching element tag of fillin.
For example Since the text Monday in form matches the Element tag
<Monday> in fillin put maandag in the element tag <li> of Monday.


Kind of a Pseudo Code

 Fo information:
 get element tags for li
 get text for li


 Fi information:
 get childtags for dutchdays


 if(text for li=child tags for dutchdays):
   replace child tags for dutchdays text with text for li

Some pieces of code that I tried out but cannot put together to get the
results.

import xml.dom.minidom
from xml.dom.minidom import parseString
import xml.xpath

form="""
<html>
<head> <title> My Sample Web Page </title> </head>
<body bgcolor="white">
<p>
What are the weekdays?
<ol>
<li>Monday</li>
<li>Tuesday</li>
<li>Wednesday</li>
<li>Thursday</li>
<li>Friday</li>
</ol>
</p>
</body>
</html>
"""
fillin="""
<dutchdays>
<Monday>maandag</Monday>
<Tuesday>dinsdag</Tuesday>
<Wednesday>woensdag</Wednesday>
<Thursday>donderdag</Thursday>
<Friday>vrijdag</Friday>
<Saturday>zaterdag</Saturday>
<Sunday>zondag</Sunday>
</dutchdays>
"""


fo=xml.dom.minidom.parseString(form)
fi=xml.dom.minidom.parseString(fillin)

mon=fi.getElementsByTagName('Monday')
monlist=mon[0]
m=monlist.childNodes[0]
mo=m.data
fri=fi.getElementsByTagName('Friday')
frilist=fri[0]
f=frilist.childNodes[0]
fr=f.data

for li in xml.xpath.Evaluate("//li", form_doc):
 li.normalize()
 day_text = li.childNodes[0]
 day_str = day_text.nodeValue


Thanks for the help!!




More information about the Python-list mailing list