Findus Posted January 21, 2009 Share Posted January 21, 2009 (edited) musicDir = dcom.getSetupValue("MusicShares", "Sharepath0", ""); liefert immer null zurueck fuer andere Werte die in setup.xml enthalten sind, kommen richtige Werte zurueck. die userdata.xml sieht wie folgt aus.. <?xml version="1.0" encoding="UTF-8" ?> - <settings> - <section name="MusicShares"> <entry name="Sharename0">MP3</entry> <entry name="Sharepath0">C:\Transfer\Pri\MP3</entry> <entry name="Pincode0">-1</entry> </section> </settings> Gruss Findus Edited January 21, 2009 by Findus Quote Link to comment
sater Posted May 6, 2011 Share Posted May 6, 2011 Schieb. Wüsste ich auch gerne wie das geht. Oder bleibt nur der Umweg über einen XML Parser? Quote Link to comment
nuts Posted May 6, 2011 Share Posted May 6, 2011 (edited) Gets a value from the setup.xml of the DVBViewer. Für mich ist die Doku hier eindeutig Du übergibst ja auch gar nicht aus welcher xml Datei gelesen werden soll => es wird immer die setup.xml verwendet. Zurückgegeben werden sollte in deinem Fall: "" (bzw. immer der als default definierte Wert => s. Doku) XML-Parser gibt es für fast jede Sprache. Welche verwendest du? Edited May 6, 2011 by nuts Quote Link to comment
nuts Posted May 6, 2011 Share Posted May 6, 2011 (edited) Da XML etwas gewöhnungsbedürftig ist hier mal ein Beispiel (autoit mit _XMLDomWrapper.au3): #include <_XMLDomWrapper.au3> #include <Array.au3> main() Func main() Local $sFile = @ScriptDir & "\test.xml" If FileExists($sFile) Then $ret = _XMLFileOpen($sFile) If @error Then MsgBox(1, "", @error) $wert = _XMLGetValue('/settings/section[@name="Card"]/entry [@name="Unicast"]') ;$wert= _XMLGetAttrib('/settings/section[@name="Unicast Network Device"]');/section[@name="Card"]/entry [@name="Unicast"]') If IsArray($wert) Then MsgBox(4096, "", $wert[1]) _ArrayDisplay($wert) EndIf Else MsgBox(4096, "fehler", "file not found") EndIf EndFunc ;==>main und die xml dazu: <?xml version="1.0" encoding="UTF-8"?> <settings> <section name="Card"> <entry name="IPTV">0</entry> <entry name="Unicast">2</entry> <entry name="Multicast">0</entry> <entry name="Filedevice">0</entry> </section> <section name="Unicast Network Device"> <entry name="DVBServerIP">192.168.1.100</entry> <entry name="ServerPort">4022</entry> <entry name="UnicastIP">192.168.1.100</entry> <entry name="UnicastPort">3456</entry> <entry name="UnicastNic">0.0.0.0</entry> <entry name="UCBuffers">7</entry> </section> <section name="Unicast Network Device 2"> <entry name="DVBServerIP">192.168.1.100</entry> <entry name="ServerPort">4022</entry> <entry name="UnicastIP">192.168.1.100</entry> <entry name="UnicastPort">3456</entry> <entry name="UnicastNic">0.0.0.0</entry> <entry name="UCBuffers">7</entry> </section> </settings> Hier gibts die _XMLDomWrapper.au3: http://www.autoitscript.com/forum/topic/19848-xml-dom-wrapper-com/ Edited May 6, 2011 by nuts Quote Link to comment
sater Posted May 10, 2011 Share Posted May 10, 2011 (edited) Hi, ich hab das mit vb.net gelöst. Friend Sub getMediaDir() If myDVB Is Nothing Then Exit Sub Dim UserConfig As String = myDVB.DataManager.Value("#configfolder") & "userdata.xml" Dim x0 As New Xml.XmlDocument x0.Load(UserConfig) For Each elem As Xml.XmlElement In x0.SelectNodes("/settings/section") Select Case elem.Attributes("name").Value Case "MusicShares" For Each elem1 As Xml.XmlElement In elem.ChildNodes Select Case elem1.Attributes("name").Value Case "Sharepath0" AudioDir = elem1.ChildNodes(0).Value End Select Next Case "MovieShares" For Each elem1 As Xml.XmlElement In elem.ChildNodes Select Case elem1.Attributes("name").Value Case "Sharepath0" VideoDir = elem1.ChildNodes(0).Value End Select Next End Select Next End Sub Edited May 10, 2011 by sater Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.