获取Flex RTE以XML格式正确分组LI项目(包含在UL标记中)

时间:2010-02-05 19:11:10

标签: xml flex rich-text-editor rte

我正在尝试使用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 :(得分:0)

非常感谢!这正是我需要的...... 完美的工作除了:

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

相反,我使用了:

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

有更好的方法吗? 我首先尝试使用字符串regexp,但没有解决... 但是,是的,可能还有更好的方法......

反正!它有效..