mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 05:50:30 +00:00
xmltree minor improvement (#16085)
This commit is contained in:
@@ -312,7 +312,7 @@ proc add*(father, son: XmlNode) {.inline.} =
|
||||
add(father.s, son)
|
||||
|
||||
proc insert*(father, son: XmlNode, index: int) {.inline.} =
|
||||
## Insert the child `son` to a given position in `father`.
|
||||
## Inserts the child `son` to a given position in `father`.
|
||||
##
|
||||
## `father` and `son` must be of `xnElement` kind.
|
||||
##
|
||||
@@ -335,7 +335,7 @@ proc insert*(father, son: XmlNode, index: int) {.inline.} =
|
||||
insert(father.s, son, len(father.s))
|
||||
|
||||
proc delete*(n: XmlNode, i: Natural) =
|
||||
## Delete the `i`'th child of `n`.
|
||||
## Deletes the `i`'th child of `n`.
|
||||
##
|
||||
## See also:
|
||||
## * `add proc <#add,XmlNode,XmlNode>`_
|
||||
@@ -388,7 +388,7 @@ proc `[]`*(n: var XmlNode, i: int): var XmlNode {.inline.} =
|
||||
result = n.s[i]
|
||||
|
||||
proc clear*(n: var XmlNode) =
|
||||
## Recursively clear all children of an XmlNode.
|
||||
## Recursively clears all children of an XmlNode.
|
||||
##
|
||||
## .. code-block::
|
||||
## var g = newElement("myTag")
|
||||
@@ -788,87 +788,3 @@ macro `<>`*(x: untyped): untyped =
|
||||
## <a href="http://nim-lang.org">Nim rules.</a>
|
||||
##
|
||||
result = xmlConstructor(x)
|
||||
|
||||
|
||||
when isMainModule:
|
||||
var
|
||||
x: XmlNode
|
||||
|
||||
x = <>a(href = "http://nim-lang.org", newText("Nim rules."))
|
||||
assert $x == """<a href="http://nim-lang.org">Nim rules.</a>"""
|
||||
|
||||
x = <>outer(<>inner())
|
||||
assert $x == """<outer>
|
||||
<inner />
|
||||
</outer>"""
|
||||
|
||||
x = <>outer(<>middle(<>inner1(), <>inner2(), <>inner3(), <>inner4()))
|
||||
assert $x == """<outer>
|
||||
<middle>
|
||||
<inner1 />
|
||||
<inner2 />
|
||||
<inner3 />
|
||||
<inner4 />
|
||||
</middle>
|
||||
</outer>"""
|
||||
|
||||
x = <>l0(<>l1(<>l2(<>l3(<>l4()))))
|
||||
assert $x == """<l0>
|
||||
<l1>
|
||||
<l2>
|
||||
<l3>
|
||||
<l4 />
|
||||
</l3>
|
||||
</l2>
|
||||
</l1>
|
||||
</l0>"""
|
||||
|
||||
x = <>l0(<>l1p1(), <>l1p2(), <>l1p3())
|
||||
assert $x == """<l0>
|
||||
<l1p1 />
|
||||
<l1p2 />
|
||||
<l1p3 />
|
||||
</l0>"""
|
||||
|
||||
x = <>l0(<>l1(<>l2p1(), <>l2p2()))
|
||||
assert $x == """<l0>
|
||||
<l1>
|
||||
<l2p1 />
|
||||
<l2p2 />
|
||||
</l1>
|
||||
</l0>"""
|
||||
|
||||
x = <>l0(<>l1(<>l2_1(), <>l2_2(<>l3_1(), <>l3_2(), <>l3_3(<>l4_1(), <>l4_2(), <>l4_3())), <>l2_3(), <>l2_4()))
|
||||
assert $x == """<l0>
|
||||
<l1>
|
||||
<l2_1 />
|
||||
<l2_2>
|
||||
<l3_1 />
|
||||
<l3_2 />
|
||||
<l3_3>
|
||||
<l4_1 />
|
||||
<l4_2 />
|
||||
<l4_3 />
|
||||
</l3_3>
|
||||
</l2_2>
|
||||
<l2_3 />
|
||||
<l2_4 />
|
||||
</l1>
|
||||
</l0>"""
|
||||
|
||||
let
|
||||
innermost = newElement("innermost")
|
||||
middle = newXmlTree("middle", [innermost])
|
||||
innermost.add newText("innermost text")
|
||||
x = newXmlTree("outer", [middle])
|
||||
assert $x == """<outer>
|
||||
<middle>
|
||||
<innermost>innermost text</innermost>
|
||||
</middle>
|
||||
</outer>"""
|
||||
|
||||
x = newElement("myTag")
|
||||
x.add newText("my text")
|
||||
x.add newElement("sonTag")
|
||||
x.add newEntity("my entity")
|
||||
assert $x == "<myTag>my text<sonTag />&my entity;</myTag>"
|
||||
|
||||
85
tests/stdlib/txmltree.nim
Normal file
85
tests/stdlib/txmltree.nim
Normal file
@@ -0,0 +1,85 @@
|
||||
import xmltree
|
||||
|
||||
|
||||
block:
|
||||
var
|
||||
x: XmlNode
|
||||
|
||||
x = <>a(href = "http://nim-lang.org", newText("Nim rules."))
|
||||
assert $x == """<a href="http://nim-lang.org">Nim rules.</a>"""
|
||||
|
||||
x = <>outer(<>inner())
|
||||
assert $x == """<outer>
|
||||
<inner />
|
||||
</outer>"""
|
||||
|
||||
x = <>outer(<>middle(<>inner1(), <>inner2(), <>inner3(), <>inner4()))
|
||||
assert $x == """<outer>
|
||||
<middle>
|
||||
<inner1 />
|
||||
<inner2 />
|
||||
<inner3 />
|
||||
<inner4 />
|
||||
</middle>
|
||||
</outer>"""
|
||||
|
||||
x = <>l0(<>l1(<>l2(<>l3(<>l4()))))
|
||||
assert $x == """<l0>
|
||||
<l1>
|
||||
<l2>
|
||||
<l3>
|
||||
<l4 />
|
||||
</l3>
|
||||
</l2>
|
||||
</l1>
|
||||
</l0>"""
|
||||
|
||||
x = <>l0(<>l1p1(), <>l1p2(), <>l1p3())
|
||||
assert $x == """<l0>
|
||||
<l1p1 />
|
||||
<l1p2 />
|
||||
<l1p3 />
|
||||
</l0>"""
|
||||
|
||||
x = <>l0(<>l1(<>l2p1(), <>l2p2()))
|
||||
assert $x == """<l0>
|
||||
<l1>
|
||||
<l2p1 />
|
||||
<l2p2 />
|
||||
</l1>
|
||||
</l0>"""
|
||||
|
||||
x = <>l0(<>l1(<>l2_1(), <>l2_2(<>l3_1(), <>l3_2(), <>l3_3(<>l4_1(), <>l4_2(), <>l4_3())), <>l2_3(), <>l2_4()))
|
||||
assert $x == """<l0>
|
||||
<l1>
|
||||
<l2_1 />
|
||||
<l2_2>
|
||||
<l3_1 />
|
||||
<l3_2 />
|
||||
<l3_3>
|
||||
<l4_1 />
|
||||
<l4_2 />
|
||||
<l4_3 />
|
||||
</l3_3>
|
||||
</l2_2>
|
||||
<l2_3 />
|
||||
<l2_4 />
|
||||
</l1>
|
||||
</l0>"""
|
||||
|
||||
let
|
||||
innermost = newElement("innermost")
|
||||
middle = newXmlTree("middle", [innermost])
|
||||
innermost.add newText("innermost text")
|
||||
x = newXmlTree("outer", [middle])
|
||||
assert $x == """<outer>
|
||||
<middle>
|
||||
<innermost>innermost text</innermost>
|
||||
</middle>
|
||||
</outer>"""
|
||||
|
||||
x = newElement("myTag")
|
||||
x.add newText("my text")
|
||||
x.add newElement("sonTag")
|
||||
x.add newEntity("my entity")
|
||||
assert $x == "<myTag>my text<sonTag />&my entity;</myTag>"
|
||||
Reference in New Issue
Block a user