我正在尝试使用 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);
}
}