Как удалить n-й HTML-элемент в строке в PHP - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть массивная таблица с 5 столбцами, и мне нужно удалить 4-й и 5-й.

Пример:

<td><a href="http://sk.wikipedia.org/wiki/%C3%81belov%C3%A1" title="Ábelová">Ábelová</a></td>
<td><a href="http://sk.wikipedia.org/wiki/Okres_Lu%C4%8Denec" title="Okres Lučenec">Lučenec</a></td>
<td><a href="http://sk.wikipedia.org/wiki/Banskobystrick%C3%BD_kraj" title="Banskobystrický kraj">Banskobystrický kraj</a></td>
<td></td>
<td>Ábelfalva</td>

к этому:

<td><a href="http://sk.wikipedia.org/wiki/%C3%81belov%C3%A1" title="Ábelová">Ábelová</a></td>
<td><a href="http://sk.wikipedia.org/wiki/Okres_Lu%C4%8Denec" title="Okres Lučenec">Lučenec</a></td>
<td><a href="http://sk.wikipedia.org/wiki/Banskobystrick%C3%BD_kraj" title="Banskobystrický kraj">Banskobystrický kraj</a></td>

inкаждый ряд.

Ответы [ 4 ]

1 голос
/ 01 февраля 2011

Используйте PHP * расширение DOM или любой из парсеров DOM, предложенных в

и использовать XPath, такой как

/html/body/drill/down/to/your/table/tr/td[position() = 4 or position() = 5]

Как удалять узлы из DOMDocument отвечали бесчисленное количество раз раньше.Посмотрите некоторые из моих предыдущих ответов о том, как это сделать с DOM или воспользуйтесь функцией поиска , пожалуйста.

0 голосов
/ 01 февраля 2011

preg_replace может быть решением, вы также можете загрузить свой файл в объект SimpleXML, затем использовать простой цикл со счетчиком и отобразить все td в tr, которые не являются ни 4-м, ни 5-м.Вы также можете использовать preg_split, но это будет сложно.Так что SimpleXML - это лучший способ IMO.Удачи

0 голосов
/ 01 февраля 2011

Вы действительно можете использовать preg_replace, но я бы предложил регулярное выражение, соответствующее 4. и 5.

. * подстрокам.Менее элегантное (но более простое, если вы не знаете, регулярное выражение) решение использует strpos несколько раз, используя результат одного в качестве смещения следующего.
0 голосов
/ 01 февраля 2011

Используйте preg_replace с шаблоном, который соответствует td без a, и замените его пустой строкой.Или DOM расширение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...