Author: dmeyer
Date: Sun Mar 18 19:04:34 2007
New Revision: 9351
Modified:
trunk/core/src/fxdparser2.py
Log:
add dirname and root attributes
Modified: trunk/core/src/fxdparser2.py
==============================================================================
--- trunk/core/src/fxdparser2.py (original)
+++ trunk/core/src/fxdparser2.py Sun Mar 18 19:04:34 2007
@@ -1,3 +1,5 @@
+# python imports
+import os
import codecs
from xml.dom import minidom
@@ -18,6 +20,11 @@
return self._node.getAttribute
if attr == 'children':
return self
+ if attr == 'root':
+ node = self._node
+ while node.parentNode:
+ node = node.parentNode
+ return node
return getattr(self._node, attr)
def __iter__(self):
@@ -33,19 +40,13 @@
def _set_content(self, value):
if not isinstance(value, (unicode, str)):
value = str(value)
- node = self._node
- while node.parentNode:
- node = node.parentNode
- node = node.createTextNode(value)
+ node = self.root.createTextNode(value)
self._node.appendChild(node)
content = property(_get_content, _set_content, None, 'cdata content')
def add_child(self, name, content=None, **kwargs):
- node = self._node
- while node.parentNode:
- node = node.parentNode
- node = node.createElement(name)
+ node = self.root.createElement(name)
self._node.appendChild(node)
node = Wrapper(node)
if content is not None:
@@ -82,9 +83,6 @@
writer.write("/>%s"%(newl))
def save(self, filename):
- node = self._node
- while node.parentNode:
- node = node.parentNode
f = codecs.open(filename, 'w', 'utf8')
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
self._writexml(f, '', ' ', '\n')
@@ -92,11 +90,14 @@
def Document(filename=None):
if filename:
- tree = minidom.parse(filename).firstChild
+ doc = minidom.parse(filename)
+ doc.dirname = os.path.dirname(filename)
+ tree = doc.firstChild
if tree.nodeName != 'freevo':
raise RuntimeError('%s is not fxd file' % filename)
return Wrapper(tree)
doc = minidom.Document()
+ doc.dirname = ''
tree = doc.createElement('freevo')
doc.appendChild(tree)
return Wrapper(tree)
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog