Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Rekursiver Datentyp nicht möglich, Alternativen?

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

28.04.2014, aktualisiert 14:02 Uhr, 1534 Aufrufe, 4 Kommentare

Hallo,

in einem VBA-Programm soll der Inhalt einer HTML-Seite verarbeitet werden. Dafür hätte ich mir gerne eine eigenen Datentyp erstellt, in dem ich die HTML-Elemente ähnlich der Ordnerstruktur in Windows Explorer einsortieren kann. Der HTML-Quellcode liegt als String vor. Den Datentyp wollte ich so in VBA erstellen:

01.
Type myHTMLElement 
02.
    DefinitionLine As String 
03.
    Content as String 
04.
    Children() As myHTMLElement 
05.
End Type
Beim Erstellen einer Variable des Datentyps kommt die Fehlermeldung:
"Fehler beim Kompilieren: Wechselseitige Abhängigkeit von Modulen"

Hier ein Beispiel HTML-Code, der in der folgenden Art in einem Datentyp abgelegt werden soll:

01.
<html> 
02.
    <head> 
03.
        <title>Beispieltitel</title> 
04.
    </head> 
05.
    <body> 
06.
        Das ist der Body 
07.
    </body> 
08.
</html>
Meine "Wurzelvariable" heisst HTML.

HTML.DefinitionLine = "<html>"
HTML.Children(0).DefinitionLine = "<head>"
HTML.Children(0).Children(0).DefinitionLine = "<title>"
HTML.Children(0).Children(0).Content = "Beispieltitel"
HTML.Children(1).DefinitionLine = "<body>"
HTML.Children(1).Children(0).Content = "Das ist der Body"


Welche Möglichkeiten habe ich hierfür in VBA?
Mitglied: colinardo
28.04.2014, aktualisiert um 17:56 Uhr
Hallo mabue,
nur das wir uns nicht missverstehen du meinst VBA (Visual Basic for Applications) und nicht VB.Net ?
In VBA geht das z.B. mit dem InternetExplorer Objekt. Das kann dein HTML aus deinem File laden, und dann kannst du es mit den Standard-DOM-Methoden bearbeiten und auslesen.

Beispiel:
01.
'IE Objekt erstellen 
02.
Set objIE = CreateObject("InternetExplorer.Application") 
03.
 
04.
'HTML Dokument laden 
05.
objIE.Navigate "C:\test.html" 
06.
Set doc = objIE.Document 
07.
 
08.
' HTML-Body Element holen 
09.
Set bodyNode = doc.getElementsByTagName("body")(0) 
10.
 
11.
'Neues Element und einem Textnode erstellen 
12.
Set divNode = doc.createElement("div") 
13.
Set textNode = doc.CreateTextNode("Das ist ein Testtext in einem DIV-Container") 
14.
 
15.
' Textnode an das DIV anhängen 
16.
divNode.appendChild(textNode) 
17.
 
18.
'das neue Element in den Body einfügen 
19.
bodyNode.appendChild(divNode) 
20.
 
21.
'HTML testweise in einer MessageBox ausgeben 
22.
MsgBox doc.documentElement.outerHTML 
23.
 
24.
'IE schließen 
25.
objIE.Quit 
26.
Set objIE = Nothing 
27.
Set doc = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: mabue88
28.04.2014 um 16:05 Uhr
Hallo Uwe,

du hast mich richtig verstanden, ich meine Tatsächlich VBA (Visual Basic for Applications). Ich verwende die Sprache gerne in Kombination mit Excel, da für ihre Ausführung auf Geschäftsrechnern nur Office installiert sein muss (ich habe noch keinen normalen Geschäfts-Arbeitsplatzrechner gesehen, auf dem das nicht installiert war). Der Austausch geschieht über eine Exceldatei. Nichts muss installiert werden...

Ich werde mir deinen Vorschlag heute abend mal genauer anschauen und mich dann wieder melden.

Danke schon mal!

Gruss
mabue
Bitte warten ..
Mitglied: mabue88
29.04.2014 um 10:53 Uhr
Hallo Uwe,

ich hab mir gestern mal deinen Vorschlag angesehen. Prinzipiell ist es genau das, was ich will. Aber gibt es keine Möglichkeit das in einem weniger umfangreichen Datentyp abzulegen?

Danke schon mal!
Gruss
mabue
Bitte warten ..
Mitglied: colinardo
29.04.2014, aktualisiert um 11:07 Uhr
weniger umfangreichen Datentyp
was ist hier Umfangreich ? Der IE ist doch sowieso auf jedem Rechner verfügbar. Womit begründet sich dein Wunsch ?
Dann bau dir halt eine COM-Bibiliothek mit Visual Studio die deine gewünschte Funktionalität implementiert und binde sie mit CreateObject() in dein VBA ein. Dann hast du aber die zusätzliche Aufgabe die Bibliothek auf den Clients zu registrieren. Ansonsten musst du dir die Funktionalität mit Regex selber nachbauen...

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
VLAN oder mögliche Alternative?
gelöst Frage von ReddHerringLAN, WAN, Wireless5 Kommentare

Hallo zusammen :), es geht um folgendes: In meinem privaten Heimnetzwerk ist mir letztens mein Switch abgeraucht und nun ...

VB for Applications

Dateisuche nach Datentypen (mit Unterordner)

gelöst Frage von Gimli3311VB for Applications5 Kommentare

Hallo Zusammen, Ich brauch eure Hilfe, und zwar soll ich eine Ordnerstruktur nach Daten durchsuchen die den Datentypen *.xls ...

Batch & Shell

Irfanviev rekursiv starten

gelöst Frage von Nightowl71Batch & Shell5 Kommentare

hallo zusammen, bisher habe ich diese befehlsfolge im freecommander genutzt Y:\IrfanView\i_view32.exe "D:\test /thumbs /filepattern="*001*"" (mit eingabe, das ich die ...

Batch & Shell

Dateien kopieren, rekursiv in einen Ordner

gelöst Frage von golsinBatch & Shell9 Kommentare

Hallo und noch ein Frohes neues Jahr ;-) Ich bin mal wieder etwas ratlos Ich Versuche von einem Rechner ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 8 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 18 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...