2014-01-18 2 views
2

나는 값이 true 또는 false 인 경우 settings.xml의 값을 확인하고 싶기 때문에 python 스크립트를 작성하고 있습니다. 나는 XML 파일의 값을 확인하려면 : 나는 시도값을 확인하여 xbmc에서 덮어 쓰는 방법은 무엇입니까?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<settings> 
<category label="30101"> 
    <setting id="myidname.enabled" value="false"/> 
</category> 
</settings> 

을이 : 그것은 제가있는 경우 값이 true입니다 Settings.XML의의 값을 확인하지 않습니다

import xbmc 
import xbmcgui 
import xbmcplugin 
ACTION_BACKSPACE = 110 
def onAction(self, action): 
if action == ACTION_BACKSPACE: 
    if self.Settings == xbmc.getSetting("myidname.enabled") == True: 
     self.settings.setSetting("id=myidname.enabled", "value=false") 

. 값이 true로 설정된 경우 ID로 설정을 확인하려는 if 문을 사용하여 Python 용 코드를 작성하는 방법은 무엇입니까?

둘째, 나는 나를 Settings.XML의의 값을 덮어 쓸 수 있도록하려면이 코드를 사용하고 있습니다 : 그것은 나에게 값을 덮어을 못하게

self.settings.setSetting(id="myidname.enabled", value="true") 

. python이 id와 같은 줄에있는 settings.xml의 값을 덮어 쓸 수있게하려면 어떻게해야합니까?

settings.xml의 파일 위치는 c : \ users \ user \ appdata \ roaming \ xbmc \ addons \ script.tvguide \ resources입니다. 코드에서 이상한 일이있다

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<settings> 
    <category label="30101"> 
    <setting id="myid.enabled" value="false"/> 
     <setting id="myid1.enabled" value="false"/> 
     <setting id="myid2.enabled" value="false"/> 
     <setting id="myid3.enabled" value="false"/> 
     <setting id="myid4.enabled" value="false"/> 
     <setting id="myid5.enabled" value="false"/> 
     <setting id="myid6.enabled" value="false"/> 
     <setting id="myid7.enabled" value="false"/> 
    </category> 
</settings> 

답변

2

:

다음은 업데이트 XML입니다.

우선, xbmc.getSetting()을 사용하는 것처럼 보입니다.이 기능은 xbmc 모듈에 없습니다. 추가 기능의 설정을 가져오고 설정하려면 getSetting()setSetting()의 메소드를 xbmcaddon.Addon()의 인스턴스로 사용해야합니다.

그래서 "myidname.enabled"에 대한 (부울) 값을 얻을 수 있습니다 (이 정말 정의 된 설정 ID는 나에게 Settings.XML이 보여주십시오?) 사용해야합니다

import xbmcaddon 
addon = xbmcaddon.Addon() 
myidnmame_enabled = addon.getSetting('myidname.enabled') == 'true' 

참고를 getSetting()는 항상 문자열을 반환합니다! 정의 된 bool 값에 대한 부울 값을 얻으려면 'true'과 비교하는 것이 좋습니다.

는 설정은 단지 setSetting()를 사용 설정하려면 : 예 그냥 다른 부가 기능에 봐

import xbmcaddon 
addon = xbmcaddon.Addon() 
addon.setSetting('setting_id', 'true') 

하십시오.

편집 : 관련이있는 두 Settings.XML이 있습니다

:

  1. 설정이 정의 된 Settings.XML이. 이 파일은 사용자 (추가 작성자)가 정의해야하는 파일입니다. 그것은 xbmc\addons\script.tvguide\resources\settings.xml에 있어야합니다.

  2. XBMC가 선택한 값을 저장하는 (자동 생성 된) 사용자 관련 settings.xml. 이 주소는 xbmc\userdata\addon_data\script.tvguide\resources\settings.xml입니다. 수정해서는 안됩니다.

이러한 파일을 혼합 한 것으로 보입니다.첫 번째 것은 "가치"속성을 가져서는 안됩니다. 는 예컨대이 파일을 수정 :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<settings> 
    <category label="30101"> 
    <setting id="myid.enabled" value="false"/> 
     <setting id="myid1.enabled" type="bool" label="MY ID1" default="false"/> 
     <setting id="myid2.enabled" type="bool" label="MY ID2" default="false"/> 
     <setting id="myid3.enabled" type="bool" label="MY ID3" default="false"/> 
     <setting id="myid4.enabled" type="bool" label="MY ID4" default="false"/> 
     <setting id="myid5.enabled" type="bool" label="MY ID5" default="false"/> 
     <setting id="myid6.enabled" type="bool" label="MY ID6" default="false"/> 
     <setting id="myid7.enabled" type="bool" label="MY ID7" default="false"/> 
    </category> 
</settings> 
+0

예, 그것은 정의 된 설정 ID입니다. 내 첫 번째 게시물에서 업데이트 한 업데이트 XML 코드를 확인하십시오. 나는 당신의 코드를 사용하려했지만 false에서 true로 바꾸기 위해 값을 업데이트 할 수는 없다. 내 설정이 잘못된 것처럼 들리는가요? –

+0

@ user3208332 : 업데이트 된 질문과 일치하도록 답변을 업데이트했습니다. 도움이 될 때 제 대답을 수락하는 것을 고려해보십시오. – sphere

+0

샘플 xml 소스와 파이썬 코드를 사용하려고했지만 작동하지 않았습니다. xml 값의 설정을 저장하지 않습니다. 다음은 로그 하단에 다운로드 링크가 포함되어 있으므로 저장하지 않을 이유를 확인하기 위해 체크 아웃 할 수 있습니다. 문제가 발견되면 python 및 xml에 대한 올바른 소스로 게시물을 업데이트 할 수 있습니까? http://xbmclogs.com/show.php?id=113367 –

관련 문제