Как удалить узел Xml в Haxe

Кто-нибудь знает, как удалить узел из структуры XML в Haxe? Я пробовал метод removeChild, но пока не повезло: http://try.haxe.org/

Все, что я хотел бы сделать, это удалить <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 ответ

Решение

Вы пытались удалить первого ребенка 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),

Другие вопросы по тегам