我正在处理我的python脚本,因为我想检查settings.xml中的值,如果它们的值为true或false。我想检查xml文件中的值:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings>
<category label="30101">
<setting id="myidname.enabled" value="false"/>
</category>
</settings>
我试过这个:
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,它将不允许我检查settings.xml中的值。你如何使用if语句编写python的代码,如果它的值设置为true,我想用id检查设置?
其次,我使用此代码允许我覆盖settings.xml中的值:
self.settings.setSetting(id="myidname.enabled", value="true")
它不会让我覆盖这个价值。你如何为python编写代码以允许我覆盖settings.xml中与id相同的行中的值?
settings.xml的文件位置位于:c:\ users \ user \ appdata \ roaming \ xbmc \ addons \ script.tvguide \ resources。
这是更新xml:
<?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>
答案 0 :(得分:2)
你的代码中有一些奇怪的东西。
首先,看起来您使用xbmc.getSetting()
- xbmc模块中不存在这些功能。要获取(和设置)加载项的设置,您需要将方法getSetting()
和setSetting()
用于xbmcaddon.Addon()
的实例。
为了得到“myidname.enabled”的(bool)值(这真的是定义的设置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:
定义设置的settings.xml。这是您(作为附加作者)需要定义的文件。它应位于xbmc\addons\script.tvguide\resources\settings.xml
。
(自动生成的)用户相关settings.xml,其中XBMC存储所选值。它位于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>