Salut 3d0uard0,
voici le code fournis pas la doc de purebasic F1 regarde deja ça si sa peut t'avancer :
Code : Tout sélectionner
#Window = 0
#TreeGadget = 0
#XML = 0
; This procedure fills our TreeGadget, by adding the current node
; and then exploring all childnodes by recursively calling itself.
;
Procedure FillTree(*CurrentNode, CurrentSublevel)
; Ignore anything except normal nodes. See the manual for
; XMLNodeType() for an explanation of the other node types.
;
If XMLNodeType(*CurrentNode) = #PB_XML_Normal
; Add this node to the tree. Add name and attributes
;
Text$ = GetXMLNodeName(*CurrentNode) + " (Attributes: "
If ExamineXMLAttributes(*CurrentNode)
While NextXMLAttribute(*CurrentNode)
Text$ + XMLAttributeName(*CurrentNode) + "=" + Chr(34) + XMLAttributeValue(*CurrentNode) + Chr(34) + " "
Wend
EndIf
Text$ + ")"
AddGadgetItem(#TreeGadget, -1, Text$, 0, CurrentSublevel)
; Now get the first child node (if any)
;
*ChildNode = ChildXMLNode(*CurrentNode)
; Loop through all available child nodes and call this procedure again
;
While *ChildNode <> 0
FillTree(*ChildNode, CurrentSublevel + 1)
*ChildNode = NextXMLNode(*ChildNode)
Wend
EndIf
EndProcedure
FileName$ = OpenFileRequester("Choose XML file...", "", "XML files (*.xml)|*.xml|All files (*.*)|*.*", 0)
If FileName$ <> ""
If LoadXML(#XML, FileName$)
; Note:
; The LoadXML() succeed if the file could be read. This does not mean that
; there was no error in the XML though. To check this, XMLStatus() can be
; used.
;
; Display an error message if there was a markup error
;
If XMLStatus(#XML) <> #PB_XML_Success
Message$ = "Error in the XML file:" + Chr(13)
Message$ + "Message: " + XMLError(#XML) + Chr(13)
Message$ + "Line: " + Str(XMLErrorLine(#XML)) + " Character: " + Str(XMLErrorPosition(#XML))
MessageRequester("Error", Message$)
EndIf
; Note:
; Even if there was an error in the XML, all nodes before the error position
; are still accessible, so open the window and show the tree anyway.
;
If OpenWindow(#Window, 0, 0, 500, 500, "XML Example", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TreeGadget(#TreeGadget, 10, 10, 480, 480)
; Get the main XML node, and call the FillTree() procedure with it
;
*MainNode = MainXMLNode(#XML)
If *MainNode
FillTree(*MainNode, 0)
EndIf
; Expand all nodes for a nicer view
;
For i = 0 To CountGadgetItems(#TreeGadget) - 1
SetGadgetItemState(#TreeGadget, i, #PB_Tree_Expanded)
Next i
; Wait for the window close event.
;
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
Else
MessageRequester("Error", "The file cannot be opened.")
EndIf
EndIf
@++