Получение Flex RTE для правильной группировки элементов LI в XML (в теге UL) - PullRequest
0 голосов
/ 05 февраля 2010

Я пытаюсь использовать XML для преобразования кода, создаваемого Flex RTE, в действительный HTML. Нет проблем с другими элементами HTML, но есть проблемы с неупорядоченными списками. Я создал решение для перемещения последовательных LI в узел UL. После проб и ошибок я придумал следующее решение. Есть ли лучший способ сделать это?

for each (listXML:XML in xml..li) {

    if (listXML.children().length() == 0) {

        // list item is empty - make it an empty paragraph instead
        listXML.parent().replace( listXML.childIndex(), <p /> );

    } else if (listXML.parent().children()[listXML.childIndex() - 1].name() != 'ul') {

        //  first LI - wrap in UL 
        listXML.parent().replace(listXML.childIndex(), '<ul>' + listXML.toXMLString() + '</ul>');

    } else if (listXML.parent().children()[listXML.childIndex() - 1].name() == 'ul') {

        // move LI into previous UL node
        var lastUL:int = listXML.parent().children()[listXML.childIndex() -1].childIndex();
        var parentXML:XML = listXML.parent();

        delete listXML.parent().children()[listXML.childIndex()];
        parentXML.children()[lastUL].appendChild(listXML);

    }
}

1 Ответ

0 голосов
/ 06 июля 2010

Спасибо большое! Это было именно то, что мне нужно ... Работал отлично за исключением:

listXML.parent().replace(listXML.childIndex(), '(ul)' + listXML.toXMLString() + '(/ul)');

Вместо этого я использовал:

listXML.parent().replace(listXML.childIndex(), (ul){listXML}(/ul));

Есть ли лучший способ сделать это? Я сначала попробую с регулярным выражением строки, но не получилось ... Но да, возможно, есть лучший способ сделать это ...

В любом случае! это работает ..

...