问题
I have the list of images that I wrote in xml and I can be able to run them on xbmc.
Here is the list of the images in the xml:
<?xml version="1.0" encoding="utf-8"?>
<window type="dialog">
<allowoverlay>no</allowoverlay>
<coordinates>
<system>1</system>
<posx>0</posx>
<posy>0</posy>
</coordinates>
<controls>
<control type="image" id="1">
<description>Image1</description>
<posx>307</posx>
<posy>7</posy>
<width>164</width>
<height>102</height>
<visible>true</visible>
<texturefocus>image1_blue.jpg</texturefocus>
<texturenofocus>image1_yellow.jpg</texturenofocus>
<onup>2</onup>
<ondown>3</ondown>
<onleft>1</onleft>
<onright>1</onright>
</control>
<control type="image" id="2">
<description>Image2</description>
<posx>471</posx>
<posy>7</posy>
<width>201</width>
<height>102</height>
<visible>true</visible>
<texturefocus>image2_yellow.jpg</texturefocus>
<texturenofocus>image2_blue.jpg</texturenofocus>
<onup>2</onup>
<ondown>3</ondown>
<onleft>1</onleft>
<onright>1</onright>
</control>
<control type="image" id="4">
<description>Image3</description>
<posx>671</posx>
<posy>7</posy>
<width>177</width>
<height>102</height>
<visible>true</visible>
<texturefocus>image3_yellow.jpg</texturefocus>
<texturenofocus>image3_blue.jpg</texturenofocus>
<onup>2</onup>
<ondown>3</ondown>
<onleft>1</onleft>
<onright>1</onright>
</control>
<control type="image" id="6">
<description>image4</description>
<posx>848</posx>
<posy>7</posy>
<width>176</width>
<height>102</height>
<visible>true</visible>
<texturefocus>image4_yellow.jpg</texturefocus>
<texturenofocus>image4_blue.jpg</texturenofocus>
<onup>2</onup>
<ondown>3</ondown>
<onleft>1</onleft>
<onright>1</onright>
</control>
</controls>
</window>
I want to know how do you write on if statement in python for xbmc that if the image include the id is exist then I want to know how I can change the image using the id?
回答1:
Python comes with the xml
module which has the useful ElementTree
that will do what you need.
Here's an example of how to use it:
import xml.etree.ElementTree as ET
filename = 'name_of_the_xml_file.xml'
tree = ET.parse(filename)
root = tree.getroot()
controls = root.find('controls')
for control in controls.findall('control'):
# Here are the image filenames, focus and nofocus.
focus = control.find('texturefocus').text
nofocus = control.find('texturenofocus').text
print('texturefocus={0}, texturenofocus={1}'.format(focus, nofocus))
Further reading: xml.etree.ElementTree documentation.
来源:https://stackoverflow.com/questions/21010627/xbmc-if-image-display-statement