summary refs log tree commit diff stats
path: root/lib/pure/xmltree.nim
diff options
context:
space:
mode:
authorsergey.anufriev <sergey.anufriev@eltex.loc>2015-09-26 09:57:07 +0600
committersergey.anufriev <sergey.anufriev@eltex.loc>2015-09-26 10:09:07 +0600
commit64737c8496e5984336307e7a2dca18aed3c5b227 (patch)
treedf74502719c226222908a3df13d3fc717c7f432a /lib/pure/xmltree.nim
parent93527721744bf2af5a43677c710616d2691bb522 (diff)
downloadNim-64737c8496e5984336307e7a2dca18aed3c5b227.tar.gz
added proc to change an element tag and proc to insert xmlnode child
Diffstat (limited to 'lib/pure/xmltree.nim')
-rw-r--r--lib/pure/xmltree.nim13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/pure/xmltree.nim b/lib/pure/xmltree.nim
index 1c8573986..7c97a0a56 100644
--- a/lib/pure/xmltree.nim
+++ b/lib/pure/xmltree.nim
@@ -104,10 +104,23 @@ proc tag*(n: XmlNode): string {.inline.} =
   assert n.k == xnElement
   result = n.fTag
 
+proc `tag=`*(n: XmlNode, tag: string) {.inline.} =
+  ## sets the tag name of `n`. `n` has to be an ``xnElement`` node.
+  assert n.k == xnElement
+  n.fTag = tag
+
 proc add*(father, son: XmlNode) {.inline.} =
   ## adds the child `son` to `father`.
   add(father.s, son)
 
+proc insert*(father, son: XmlNode, index: int) {.inline.} =
+  ## insert the child `son` to a given position in `father`.
+  assert father.k == xnElement and son.k == xnElement
+  if len(father.s) > index:
+    insert(father.s, son, index)
+  else:
+    insert(father.s, son, len(father.s))
+
 proc len*(n: XmlNode): int {.inline.} =
   ## returns the number `n`'s children.
   if n.k == xnElement: result = len(n.s)