Actionscript htmltext. удаление тега таблицы из динамического HTML-текста - PullRequest
0 голосов
/ 16 декабря 2011

AS 3.0 / Flash

  1. Я использую XML, который не могу контролировать.
  2. XML содержит HTML, который я стилизую и отображаю в текстовом поле HTML.
  3. Я хочу удалить все HTML, кроме ссылок.

Убрать все теги HTML, кроме ссылок не работает для меня.

есть ли у кого-нибудь советы?regEx?

следующее удаляет таблицы.var reTable: RegExp = /<table\s+[^>]*>.*?<\/table>/s;

но теперь я понимаю, что мне нужно сохранить содержимое таблиц, а также мне нужны ссылки.

спасибо !!!

ср

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

ActionScript имеет довольно удобный инструмент для обработки XML: E4X. Вместо того, чтобы полагаться на RegEx, который, как мне кажется, часто портит XML, просто измените фактическое дерево XML и изнутри AS:

var xml : XML = <page>
                  <p>Other elements</p>
                  <table><tr><td>1</td></tr></table>
                  <p>won't</p>
                  <div>
                      <table><tr><td>2</td></tr></table>
                  </div>
                  <p>be</p>
                  <table><tr><td>3</td></tr></table>
                  <p>removed</p>
                  <table><tr><td>4</td></tr></table>
            </page>;

clearTables (xml);

trace (xml.toXMLString()); // will output everything but the tables

function removeTables (xml : XML ) : void {
    xml.replace( "table", "");
    for each (var child:XML in xml.elements("*")) clearTables(child);
}
0 голосов
/ 16 декабря 2011

Вероятно, не следует использовать регулярные выражения для разбора HTML, но если вам все равно, что-то простое, как это:

найти /<table\s+[^>]*>.*?<\/table\s+>/
replace ""

...