web/ldt/ldt_utils/utils.py
changeset 32 eac14c3ae625
parent 5 d42bb045f7d1
child 40 509e30b9f5c9
--- a/web/ldt/ldt_utils/utils.py	Fri Aug 06 17:19:37 2010 +0200
+++ b/web/ldt/ldt_utils/utils.py	Thu Aug 19 12:15:27 2010 +0200
@@ -12,6 +12,7 @@
 import xml.xpath
 import datetime
 import Ft
+import lxml.etree
 
 class LdtSearch(object):
 
@@ -315,15 +316,13 @@
 def update_iri(filepath, content, username):
     
     # open xml
-    doc = xml.dom.minidom.parse(filepath)
-    doc = Ft.Xml.Domlette.ConvertDocument(doc) 
+    doc = lxml.etree.parse(filepath)
     
-    con = xml.xpath.Context.Context(doc, 1, 1, None)
-    res = xml.xpath.Evaluate("/iri/heqd/meta", context=con)
+    res = doc.xpath("/iri/heqd/meta")
     # update meta
     
     for meta_node in res:
-        meta_name = meta_node.getAttributeNS(None,"name")
+        meta_name = meta_node.get("name")
         content_attr = None
         if meta_name == u'id':
             content_attr = unicode(content.iri_id)
@@ -336,19 +335,19 @@
         elif meta_name == u"date":
             content_attr = unicode(datetime.date.today().isoformat())
         if content_attr is not None:
-            meta_node.setAttributeNS(None, u"content", content_attr)
+            meta_node.set(u"content", content_attr)
 
-    res = xml.xpath.Evaluate("/iri/body/medias/media[@id='video']/video", context=con)
+    res = doc.xpath("/iri/body/medias/media[@id='video']/video")
     
     if len(res) > 0:
         video_node = res[0]
-        video_node.setAttributeNS(None, u'src', unicode(content.src))
-        video_node.setAttributeNS(None, u'dur', unicode(content.duration))
-        video_node.setAttributeNS(None, u'id', unicode(content.iri_id))
+        video_node.set(u'src', unicode(content.src))
+        video_node.set(u'dur', unicode(content.duration))
+        video_node.set(u'id', unicode(content.iri_id))
     # update video
     
     f = open(filepath, "w")
     try:
-        xml.dom.ext.Print(doc, stream=f)
+        doc.write(f, encoding="UTF-8", pretty_print=True, xml_declaration=True)
     finally:
         f.close()