diff options
-rw-r--r-- | lib/pure/xmltree.nim | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/pure/xmltree.nim b/lib/pure/xmltree.nim index 5385705cd..7cfb62157 100644 --- a/lib/pure/xmltree.nim +++ b/lib/pure/xmltree.nim @@ -97,19 +97,18 @@ proc innerText*(n: XmlNode): string = ## - If `n` is `xnElement`, runs recursively on each child node and ## concatenates the results. ## - Otherwise returns an empty string. - var res = "" - proc worker(n: XmlNode) = + proc worker(res: var string, n: XmlNode) = case n.k - of { xnText, xnEntity }: + of xnText, xnEntity: res.add(n.fText) of xnElement: for sub in n.s: - worker(sub) + worker(res, sub) else: discard - worker(n) - res + result = "" + worker(result, n) proc tag*(n: XmlNode): string {.inline.} = ## gets the tag name of `n`. `n` has to be an ``xnElement`` node. |