Mercurial > projects > orange
diff orange/xml/XMLDocument.d @ 20:9a575087b961
Added support for slices. Strings and arrays are now treated as references.
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 04 Oct 2010 18:27:21 +0200 |
parents | d17ae98330bf |
children | 78e5fef4bbf2 |
line wrap: on
line diff
--- a/orange/xml/XMLDocument.d Thu Aug 12 23:24:51 2010 +0200 +++ b/orange/xml/XMLDocument.d Mon Oct 04 18:27:21 2010 +0200 @@ -24,6 +24,8 @@ version = Phobos; } + +import orange.util.io; template Char (T) { @@ -116,25 +118,32 @@ { private InternalNode node; - version (Phobos) + version (Tango) + { + private static Node opCall (InternalNode node) + { + Node proxy; + proxy.node = node; + + return proxy; + } + } + + else { private bool shouldAddToDoc = true; private bool isRoot = true; - } - - private static Node opCall (InternalNode node, bool shouldAddToDoc = false, bool isRoot = false) - { - Node proxy; - proxy.node = node; - - version (Phobos) - { + + private static Node opCall (InternalNode node, bool shouldAddToDoc = false, bool isRoot = false) + { + Node proxy; + proxy.node = node; proxy.shouldAddToDoc = shouldAddToDoc; proxy.isRoot = isRoot; - } - return proxy; - } + return proxy; + } + } public static Node invalid () { @@ -215,6 +224,12 @@ version (Tango) return *this; else return this; } + + void attach (Node node) + { + version (Tango) this.node.move(node.node); + else this.node.elements ~= node.node; + } } struct QueryProxy @@ -441,4 +456,10 @@ else return doc.prolog ~ "\n" ~ join(doc.pretty(indentation), "\n"); } + + Node createNode (tstring name, tstring value = null) + { + version (Tango) return Node(tree.element(name, value).node.detach); + else return Node(new Element(name, value), false, false); + } } \ No newline at end of file