Hej!Koll om subElement finns i XMLElement
Jag har ett XML-problem i Access2000 då jag måste kolla om ett visst subelement finns i XMLelementet (egendefinierad class). Noden MaterialGroup ska användas om den finns med i xmlelementet annars ska "Type" användas istället. Något av dessa finns alltid med.
Så här der det ut:
Public Function makeComponentCollector(elementData As XMLElement) As DataCollectorComponent
Dim coll As New DataCollectorComponent
coll.MaterialGroup = elementData.findSubElement("MaterialGroup").pcdata
'osv....
ENd function
XMLElement-classen:
---------------------------------------------
Option Explicit
Public elementName As String 'The element name.
Public closed As Boolean 'Signifies wether we have encountered the end
'of this element yet.
Public pcdata As String 'Any PCDATA present in the element.
Private hash As New BadHash 'This list of objects cannot be guaranteed to
'hold relevant data until closed is True, but
'theese are the resulting object from treating
'child elements of this one.
'Will find the FIRST subelement in the given element that is of the specified type name.
Public Function findSubElement(Name As String) As XMLElement
Set findSubElement = hash.retrieveFirst(Name)
End Function
----------------------------------------------------------------------------------------
BadHash-klassen som om den inte hittar något skickar felmeddelande:
----------------------------------------------------------------------------------------
Option Compare Database
Option Explicit
Private keyColl As New Collection
'This function will retrieve the very first value matching the
'key, or Null if not present.
Public Function retrieveFirst(key As String) As Object
Dim hit As Collection
On Error GoTo CATCH
Set hit = keyColl.Item(key)
Set retrieveFirst = hit.Item(1)
Exit Function
CATCH:
'If no matching key is found, return Null.
Set retrieveFirst = Nothing
Exit Function
End Function
Om den går in i felhanteringen i retrieveFirstKey kastas felet långt tillbaka och hanteras som att ett allvarligt fel inträffat och transaktion avbryts och "rollas" tillbaka.
Jag vill ju fånga detta innan det ens går till felhanteringen.
Några förslag?
Mvh, Sofia