Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Заменить один тег на другой html

Ответить
Настройки темы
[решено] Заменить один тег на другой html

Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Pavluha
Дата: 06-05-2012
Здравствуйте. Мне нужно в html коде заменить тег
HTML код: Выделить весь код
<span style="font-weight: bold;">текст</span>

(их может быть несколько) на
HTML код: Выделить весь код
<b>текст</b>

Проблема в том, что тегов span в документе очень много: у меня не получается найти закрывающий тег (так как они очень часто влаживаются один в другой). Помогите, пожалуйста.

Отправлено: 13:03, 06-05-2012

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pavluha:
нужно в html коде заменить тег »
Только тег, или всё его содержимое?

Если первое, тогда так:
Код: Выделить весь код
$vTest = 'some code <span style="font-weight: bold;">span content <span style="">included span content other span content</span> some code'</span>

$sRet = StringRegExpReplace($vTest, '<span style="[^"]*">|</span>', '')

ConsoleWrite("Result: " & $sRet & @LF)
Если второе, тогда так:
Код: Выделить весь код
$vTest = 'some code <span style="font-weight: bold;">span content <span style="">included span content other span content</span> some code'</span>

$sRet = StringRegExpReplace($vTest, '<span style="[^"]*">.*</span>', '')

ConsoleWrite("Result: " & $sRet & @LF)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:31, 06-05-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Creat0R, мне нужно сменить название тега, а не убрать его.

То есть, мне нужно превратить это:

HTML код: Выделить весь код
some <span style="font-weight: bold;">text and <span style="font-weight: italic;">more</span></span>

в:

HTML код: Выделить весь код
some <b>text and <span style="font-weight: italic;">more</span></b>


Последний раз редактировалось Pavluha, 06-05-2012 в 21:50.


Отправлено: 21:29, 06-05-2012 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pavluha:
мне нужно сменить название тега, а не убрать его »
Пока получилось только с циклом:

Код: Выделить весь код
$vTest = 'some code <span style="font-weight: bold;">span content <span style="">included span content other span content</span> some code</span>'

While 1
    $vTest = StringRegExpReplace($vTest, '<span style="[^"]*">(.*(?=</span>))</span>', '<b>\1</b>')
    If @extended = 0 Then ExitLoop
WEnd

ConsoleWrite("Result: " & $vTest & @LF)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 21:55, 06-05-2012 | #4


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


а можно другие варианты, а то этот не работает правильно (только что заметил)

Последний раз редактировалось Pavluha, 06-05-2012 в 23:23.


Отправлено: 22:37, 06-05-2012 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pavluha:
можно другие варианты, а то этот не работает правильно »
Код с которым нужно работать, в студию.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 02:06, 07-05-2012 | #6


Аватара для gregaz

Пользователь


Сообщения: 88
Благодарности: 19

Профиль | Отправить PM | Цитировать


Может так :?

Код: Выделить весь код
$sText='<title>Заменить один тег на другой html</title>'  & @CRLF & _ 
'some <span style="font-weight: bold;">text and <span style="font-weight: italic;">more</span></span>'  & @CRLF & _ 
'some <span style="font-weight: bold;">====text1==== and <span style="font-weight: italic;">more</span></span>'  & @CRLF & _ 
'some <span style="font-weight: bold;">*****text2**** and <span style="font-weight: italic;">more</span></span>'

$sNewTag="b"   
   
$sPatern = '<(?:span.*?bold;")>(.+)<(?:/span)>'
$sResult = StringRegExpReplace( $sText, $sPatern,"<" & $sNewTag & ">$1</" & $sNewTag & ">" )
MsgBox(4096, ' Test Result', $sResult)

Последний раз редактировалось gregaz, 07-05-2012 в 06:50.


Отправлено: 06:28, 07-05-2012 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата gregaz:
Может так :? »
Оно не заменяет вложенные теги.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 07:20, 07-05-2012 | #8


Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Creat0R, gregaz, я придумал алгоритм, по которому можно 100% найти закрывающий тег, он есть конечно , но не могу сам написать. Примерно так:

Код: Выделить весь код
$iPos = StringInStr ($sString, '<span style="font-weight: bold;">')
$iTags = 0
While $iTags<>-1
  (тут идём дальше по файлу. если видим закрывающийся 
  тег, то $iTags уменьшаем на 1, а если открывающийся, то 
  увеличиваем на 1. Цикл закончится, когда найдём 
  правильный закрывающийся тег. Надо найти его позицию.) 
WEnd
единственное, что надо учесть при написании -- могут быть одинарные теги.


Цитата Creat0R:
Код с которым нужно работать, в студию. »
прога будет работать с обыкновенным хтмл кодом, она будет копировать с нужного сайта новость или что-то другое, заменять теги и выдавать мне результат. Единственное, что у меня не получается -- заменять теги.

Последний раз редактировалось Pavluha, 07-05-2012 в 17:13. Причина: исправлены ошибки


Отправлено: 17:04, 07-05-2012 | #9


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pavluha:
я придумал алгоритм, по которому можно 100% найти закрывающий тег »
Зачем что-то придумывать?
Я дал рабочий вариант, если нет хотя бы куска кода который показывает обратно, то не имеет смысла дальше что либо делать.

Цитата Pavluha:
прога будет работать с обыкновенным хтмл кодом, она будет копировать с нужного сайта новость или что-то другое »
Пример такого кода можно увидеть?
Ты написал что вариант работает неправильно, покажи с каким кодом.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:18, 07-05-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Заменить один тег на другой html

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как заменить стандартный блокнот другой программой? vanillapink Microsoft Windows 7 35 19-12-2016 13:12
[решено] html|Тег <pre> выводит в одну строку morgan1991 Вебмастеру 2 09-03-2010 13:38
Windows Server: заменить два SATA диска (RAID 1 на на PCI контроллере) на один IDE gunwitch Microsoft Windows NT/2000/2003 8 17-03-2008 15:55
Один видит, другой - нет monokius Сетевые технологии 4 09-11-2005 16:09
Помогите найти HTML тег. Pavel88 Вебмастеру 2 09-11-2002 11:19




 
Переход