如何在 Haxe 中删除一个 Xml 节点

How to delete an Xml node in Haxe

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

我只想从 <root><node1/></root> 中删除 <node1 />

这是我试过的:

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>

有人吗?布勒? :)

您试图从 xml 中删除 x 的第一个子节点/根节点,而您确实需要从 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) 会隐式调用