Code

more pyxml to lxml conversion.
[inkscape.git] / share / extensions / markers_strokepaint.py
index 6d6331cdbadaffdbec872dc3f253b630a3df2e07..a6928f5e4f9f59ac0156f6659c5520e64bfbcb0d 100644 (file)
@@ -27,15 +27,14 @@ class MyEffect(inkex.Effect):
                         help="do not create a copy, modify the markers")\r
         \r
     def effect(self):\r
-        defs = self.xpathSingle('/svg//defs')\r
+        defs = self.xpathSingle('/svg:svg//svg:defs')\r
         if not defs:\r
-            defs = self.document.createElement('svg:defs')\r
-            self.document.documentElement.appendChile(defs)\r
+            defs = inkex.etree.SubElement(self.document.getroot(),inkex.addNS('defs','svg'))\r
         \r
         for id, node in self.selected.iteritems():\r
             mprops = ['marker','marker-start','marker-mid','marker-end']\r
             try:\r
-                style = simplestyle.parseStyle(node.attributes.getNamedItem('style').value)\r
+                style = simplestyle.parseStyle(node.get('style'))\r
             except:\r
                 inkex.debug("No style attribute found for id: %s" % id)\r
                 continue\r
@@ -46,9 +45,9 @@ class MyEffect(inkex.Effect):
                 if style.has_key(mprop) and style[mprop] != 'none'and style[mprop][:5] == 'url(#':\r
                     marker_id = style[mprop][5:-1]\r
                     try:\r
-                        old_mnode = self.xpathSingle('/svg//marker[@id="%s"]' % marker_id)\r
+                        old_mnode = self.xpathSingle('/svg:svg//svg:marker[@id="%s"]' % marker_id)\r
                         if not self.options.modify:\r
-                            mnode = old_mnode.cloneNode(True)\r
+                            mnode = inkex.etree.fromstring(inkex.etree.tostring(old_mnode))\r
                         else:\r
                             mnode = old_mnode\r
                     except:\r
@@ -58,18 +57,18 @@ class MyEffect(inkex.Effect):
                     new_id = self.uniqueId(marker_id, not self.options.modify)\r
                     \r
                     style[mprop] = "url(#%s)" % new_id\r
-                    mnode.attributes.getNamedItem('id').value = new_id\r
-                    mnode.attributes.getNamedItemNS(inkex.NSS['inkscape'],'stockid').value = new_id\r
-                    defs.appendChild(mnode)\r
+                    mnode.set('id', new_id)\r
+                    mnode.set(inkex.addNS('stockid','inkscape'), new_id)\r
+                    defs.append(mnode)\r
                     \r
-                    children = inkex.xml.xpath.Evaluate('/svg//marker[@id="%s"]//*[@style]' % new_id,self.document,context=self.ctx)\r
+                    children = self.document.getroot().xpath('/svg:svg//svg:marker[@id="%s"]//*[@style]' % new_id,inkex.NSS)\r
                     for child in children:\r
-                        cstyle = simplestyle.parseStyle(child.attributes.getNamedItem('style').value)\r
+                        cstyle = simplestyle.parseStyle(child.get('style'))\r
                         if ('stroke' in cstyle and cstyle['stroke'] != 'none') or 'stroke' not in cstyle:\r
                                 cstyle['stroke'] = stroke\r
                         if ('fill' in cstyle and cstyle['fill'] != 'none') or 'fill' not in cstyle:\r
                                 cstyle['fill'] = stroke\r
-                        child.attributes.getNamedItem('style').value = simplestyle.formatStyle(cstyle)\r
-            node.attributes.getNamedItem('style').value = simplestyle.formatStyle(style)\r
+                        child.set('style',simplestyle.formatStyle(cstyle))\r
+            node.set('style',simplestyle.formatStyle(style))\r
 e = MyEffect()\r
 e.affect()\r