Как удалить узел 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)
,