Использование [0] в ответе invertedSpear на самом деле не ссылается на индекс XMLList, оно указывает позицию дочернего элемента для доступа к выбранному узлу. Для сравнения
textElements.(@position==columnIndex).appendChild("anyString");
Это будет делать то же самое, что и ответ invertedSpear, но добавит дочерний узел к выбранному узлу, а не будет обращаться к дочернему узлу напрямую по индексу. Узел, если он существует, всегда будет иметь индексированный дочерний элемент равным 0, в этом случае он ссылается на значение самого узла.
Учтите следующее:
var xml:XML = <root><node position="1" /><node position="2" /><node position="3" ><subnode>Test1</subnode><subnode>Test2</subnode></node></root>;
var c:XMLList = xml.children();
trace(c);
c.(@position == 1)[0] = "first test";
c.(@position == 2).appendChild("SECOND TEST");
c.(@position == 3)[1] = 'FINAL_test';
trace(c);
trace(c[0][0]);
Первый будет работать, как показано. Второй также будет работать, как показано. Третий, однако, потерпит неудачу, потому что узел с позицией == 3 не имеет дочернего элемента с индексом 1. Обратите внимание, что это будет работать ...
c.(@size == 3).children()[1] = 'NEW test';
trace(c);