• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как изменить значение линков в поле?

  • Автор темы jcolor
  • Дата начала
J

jcolor

Всем привет:))
необходимо в документах изменить значение ссылок в RichText полях.
т.е. необходимо сделать экспорт документа, исправить его и затем импорт назад.
с экспортом и импортом все понятно, а вот как внести изменения?

попробовала использовать DOM, чтобы удобно былло перемещаться по тегам
получилось следующее:
Код:
Set docNode = domParser.Document
Set rootElement = domParser.Document.DocumentElement
Set docList = rootElement.GetElementsByTagName ("item")
If docList.NumberOfEntries = 0 Then Exit Sub

For iDoc = 1 To docList.NumberOfEntries	'перебор всех item
Set eNode = docList.GetItem(iDoc)
If eNode.Attributes.NumberOfEntries > 0 Then
For iAttr = 1 To eNode.Attributes.NumberOfEntries ' поиск item c атрибутом name = "RT_field"
If eNode.GetAttribute("name") = "RT_field" Then
Set itemList = eNode.GetElementsByTagName ("urllink") ' поиск линков в RichText поле
If itemList.NumberOfEntries > 0 Then	
For iDoc2 = 1 To itemList.NumberOfEntries
Set tNode = itemList.GetItem(iDoc2)
if tNode.Attributes.NumberOfEntries > 0 Then
str_1=tNode.GetAttribute("href") ' !!!!! в найденных линках необходимо изменить значение href
Call tNode.SetAttribute("href", "new_link.html") 
End If
Next
End If
End If
Next
End If
Next

т.е. получается что перемещаясь по документу я нахожу те ссылки и атрибуты, кот. необходимо исправить,
теперь вопрос как их исправить?
есть SetAttribute("href", "new_link.html"), но как запомнить эти изменения?
 
S

serEJa Shabalin

Если речь идет о DXL NotesDOMParser.Serialize()
 
O

Omh

Задекларь tNode как NotesDOMElementNode.
И не забудь про Serialize
 
J

jcolor

<!--QuoteBegin-Omh+14:11:2007, 15:04 -->
<span class="vbquote">(Omh @ 14:11:2007, 15:04 )</span><!--QuoteEBegin-->Задекларь tNode как NotesDOMElementNode.
И не забудь про Serialize
[snapback]85643" rel="nofollow" target="_blank[/snapback]​
[/quote]


СПАСИБО!!!!!
Получилось

Какой-то глюк еще проявляется, в один момент после внесения изменений в агенте, появляется ошибка : "Dom parser opertion failed" :)
ошибка исчезает, после создания нового агента и переноса кода :(((
что это может быть?
 
O

Omh

Выглядит как бред....
Может ты пытаешься наускать DOM парсер на несохранённый док?
У меня других идей пока нет...

Выпечатай NotesDOMParser.Log - это поможет разобраться в чём косяк..

И вообще сделай код так, что бы при включенной опции Option Declare, компилятор не ругался.
Самому же легче будет...
 
J

jcolor

<!--QuoteBegin-Omh+14:11:2007, 16:23 -->
<span class="vbquote">(Omh @ 14:11:2007, 16:23 )</span><!--QuoteEBegin-->Выпечатай NotesDOMParser.Log - это поможет разобраться в чём косяк..
[snapback]85683" rel="nofollow" target="_blank[/snapback]​
[/quote]

Разобралась, действительно оказались проблемы с файлом!
Спасибо :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!