0

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);

    }
}
4

1 に答える 1

0

どうもありがとう!それはまさに私が必要としていたものでした...次の点を除いて完全に機能しました:

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

代わりに私は使用しました:

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

それを行うより良い方法はありますか?私は最初に文字列の正規表現を試しましたが、うまくいきませんでした...しかし、おそらくもっと良い方法があります...

ともかく!できます..

于 2010-07-06T17:56:17.800 に答える