XML2Treegadget
Verfasst: 10.11.2005 13:17
Hallo,
hier ist eine kleiner Code, der demonstriert, wie man eine XML-Datei
direkt in einem TreeGadget anzeigen kann.
Wichtig: Dieser Code benötigt die MSXML3-Library aus dem PBOSL-Paket
Grüße ... Kiffi
und hier noch eine simple XML-Struktur zu Austesten:
hier ist eine kleiner Code, der demonstriert, wie man eine XML-Datei
direkt in einem TreeGadget anzeigen kann.
Wichtig: Dieser Code benötigt die MSXML3-Library aus dem PBOSL-Paket
Grüße ... Kiffi
Code: Alles auswählen
Enumeration
#frmMain
#TG
EndEnumeration
Procedure XML2TreeGadget(oDoc.l)
Static NodeCounter.l
If MSXML3_HasChildNodes(oDoc)
oNodeList = MSXML3_GetChildNodes(oDoc)
If oNodeList
For lCounterN = 0 To MSXML3_NodeListGetLength(oNodeList)
oNode = MSXML3_NodeListGetItem(oNodeList, lCounterN)
If oNode
If MSXML3_GetNodeName(oNode) = "#text"
NodeText$ = "Text: '" + MSXML3_GetText(oNode) + "'"
Else
NodeText$ = "<" + MSXML3_GetNodeName(oNode)
oAttributeList = MSXML3_GetAttributes(oNode)
If oAttributeList
For lCounterA = 0 To MSXML3_AttributesGetLength(oAttributeList)
oAttribute = MSXML3_AttributesGetItem(oAttributeList, lCounterA)
If oAttribute
NodeText$ + " " + MSXML3_GetNodeName(oAttribute) + "=" + Chr(34) + MSXML3_AttributesGetText(oAttribute) + Chr(34)
MSXML3_ReleaseObject(oAttribute)
EndIf
Next lCounterA
MSXML3_ReleaseObject(oAttributeList)
EndIf
NodeText$ + ">"
EndIf
AddGadgetItem(#TG, -1, NodeText$)
NodeCounter + 1
If NodeCounter > 50
DOEVENTS()
NodeCounter = 0
EndIf
If MSXML3_HasChildNodes(oNode)
OpenTreeGadgetNode(#TG)
XML2TreeGadget(oNode)
CloseTreeGadgetNode(#TG)
EndIf
MSXML3_ReleaseObject(oNode)
EndIf
Next lCounterN
MSXML3_ReleaseObject(oNodeList)
EndIf
EndIf
EndProcedure
If OpenWindow(#frmMain, 0, 0, 500, 500, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "XML2TreeGadget-Demo")
If CreateGadgetList(WindowID(#frmMain))
TreeGadget(#TG, 0, 0, 500, 500)
oDoc = MSXML3_CreateDomDocument()
If oDoc
If MSXML3_Load(oDoc, "c:\test.xml")
HideGadget(#TG, #True)
XML2TreeGadget(oDoc)
HideGadget(#TG, #False)
Else
MessageRequester("XML2TreeGadget-Demo", "Couldn't load xmlfile")
EndIf
MSXML3_ReleaseObject(oDoc)
Else
MessageRequester("XML2TreeGadget-Demo", "Couldn't create xmlobject")
EndIf
Repeat
WaitWindowEvent = WaitWindowEvent()
EventGadgetID = EventGadgetID()
Select WaitWindowEvent
Case #PB_Event_Gadget
Select EventGadgetID
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
EndIf
Code: Alles auswählen
<node>This is just a simple XML-File
<node testattribute="42" anotherattribute="hello world">
<node>
<node>This is not an empty node</node>
</node>
</node>
</node>