Originariamente inviato da Fado84
giusto.. per la sua struttura ad albero è l'ideale...c'è un problema però.. non ho mai avuto a che fare con file xml... interfacciamento tra vb e xml.. dove posso documentarmi?
grazie xeregallo!
esempio scemotto ma per prendere spunto
file XML
codice:
<?xml version="1.0"?>
<Traduzioni>
<italiano>
<label1>ciao</label1>
<label2>buongiorno</label2>
<command1>x</command1>
</italiano>
<inglese>
<label1>hello</label1>
<label2>good morning</label2>
<command1>y</command1>
</inglese>
<francese>
<label1>salut</label1>
<label2>bonjour</label2>
<command1>z</command1>
</francese>
</Traduzioni>
codice vb6
codice:
Private Sub Form_Load()
Call traduci
Me.Refresh
End Sub
Private Sub mnuIt_Click()
mnuIt.Checked = Not (mnuIt.Checked)
If mnuEn.Checked = True Then mnuEn.Checked = False
If mnuFR.Checked = True Then mnuFR.Checked = False
Call traduci
End Sub
Private Sub mnuen_Click()
mnuEn.Checked = Not (mnuEn.Checked)
If mnuIt.Checked = True Then mnuIt.Checked = False
If mnuFR.Checked = True Then mnuFR.Checked = False
Call traduci
End Sub
Private Sub mnufr_Click()
mnuFR.Checked = Not (mnuFR.Checked)
If mnuEn.Checked = True Then mnuEn.Checked = False
If mnuIt.Checked = True Then mnuIt.Checked = False
Call traduci
End Sub
Private Sub traduci()
Dim MyXml As New MSXML.DOMDocument
Dim ListaNodi As IXMLDOMNodeList
Dim Elemento As IXMLDOMElement
Dim Nodo As IXMLDOMNode
Dim l As Long
Dim i As Integer
Dim CTRL As Control
If MyXml.Load(App.Path & "\lang.xml") Then
If mnuIt.Checked = True Then
Set ListaNodi = MyXml.getElementsByTagName("italiano")
ElseIf mnuEn.Checked = True Then
Set ListaNodi = MyXml.getElementsByTagName("inglese")
ElseIf mnuFR.Checked = True Then
Set ListaNodi = MyXml.getElementsByTagName("francese")
End If
For i = 0 To ListaNodi.length - 1
Set Elemento = ListaNodi.Item(i)
For l = 0 To Elemento.childNodes.length - 1
Set Nodo = Elemento.childNodes(l)
For Each CTRL In Controls
If UCase$(CTRL.Name) = UCase$(Nodo.nodeName) Then
If TypeOf CTRL Is Label Then
CTRL.Caption = Nodo.Text
End If
If TypeOf CTRL Is CommandButton Then
CTRL.Caption = Nodo.Text
End If
If TypeOf CTRL Is TextBox Then
CTRL.Text = Nodo.Text
End If
Exit For
End If
Next CTRL
Next l
Next i
End If
End Sub