如何在Haxe中删除Xml节点

时间:2016-02-17 21:45:35

标签: xml haxe removechild

有人知道如何从Haxe的Xml结构中删除节点吗?我尝试过removeChild方法,但到目前为止,没有运气:http://try.haxe.org/#92A8A

我想要做的就是从<node1 />移除<root><node1/></root>

这是我尝试过的:

class Test {
    static function main() {
        var xml:Xml = Xml.parse("<root><node1/></root>");
        var n:Xml;
        xml.removeChild(Xml.parse("<node1/>"));
        trace(xml.toString());
        for (x in xml.iterator())
        {
            trace(x.firstChild().toString());
            n = x.firstChild();
         }
        xml.removeChild(n);
        trace(xml.toString());
    }
}

我希望看到<root />为结果,但仍会输出<root><node1 /></root>

任何? Bueller? :)

1 个答案:

答案 0 :(得分:3)

当您确实需要从x删除xml时,您尝试删除x /根节点的第一个孩子:

class Test {
    static function main() {
        var xml:Xml = Xml.parse("<root><node1/></root>");
        for (x in xml)
            x.removeChild(x.firstChild());
        trace(xml.toString()); // <root/>
    }
}

请注意,无需直接调用iterator(),这会for (element in iterable)隐式调用。