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

Тема в разделе "Lotus - Программирование", создана пользователем jcolor, 14 ноя 2007.

  1. jcolor

    jcolor Гость

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

    попробовала использовать DOM, чтобы удобно былло перемещаться по тегам
    получилось следующее:
    Код (Text):
    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"), но как запомнить эти изменения?
     
  2. serEJa Shabalin

    serEJa Shabalin Гость

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Задекларь tNode как NotesDOMElementNode.
    И не забудь про Serialize
     
  4. jcolor

    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" :)
    ошибка исчезает, после создания нового агента и переноса кода :(((
    что это может быть?
     
  5. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Выглядит как бред....
    Может ты пытаешься наускать DOM парсер на несохранённый док?
    У меня других идей пока нет...

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

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

    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]

    Разобралась, действительно оказались проблемы с файлом!
    Спасибо :)
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Sehr gud.
    DXLExp -> DOMParser -> DXLImp рулит :)
     
Загрузка...

Поделиться этой страницей