Я хотел бы получить вашу помощь в моем сценарии .py.xml парсер в python для xbmc
Я использую файл xml для хранения пути анализатора для изображений.
Вот файл 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">
<posx>0</posx>
<posy>0</posy>
<width>1280</width>
<height>720</height>
<texture>background-defeat.png</texture>
<animation effect="fade" start="0" end="100" time="6500">WindowOpen</animation>
</control>
<control type="image" id="2">
<description>Image 2</description>
<posx>307</posx>
<posy>7</posy>
<width>154</width>
<height>95</height>
<visible>true</visible>
<texture>Image 2.png</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
<control type="image" id="3">
<description>Image 3</description>
<posx>460</posx>
<posy>7</posy>
<width>188</width>
<height>95</height>
<visible>true</visible>
<texture>Image 3.jpg</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
<control type="image" id="4">
<description>Image 4</description>
<posx>648.5</posx>
<posy>7</posy>
<width>165</width>
<height>95</height>
<visible>true</visible>
<texture>recorded_blue.jpg</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
<control type="image" id="5">
<description>Image 5</description>
<posx>813.5</posx>
<posy>7</posy>
<width>149</width>
<height>95</height>
<visible>true</visible>
<texture>Image 5.jpg</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
</controls>
</window>
Вот .py скрипт:
import xbmc
import xbmcgui
import os
#get actioncodes from keymap.xml
ACTION_MOVE_LEFT = 1
ACTION_MOVE_RIGHT = 2
ACTION_MOVE_UP = 3
ACTION_MOVE_DOWN = 4
ACTION_PREVIOUS_MENU = 10
ACTION_BACKSPACE = 110
class MyClass(xbmcgui.WindowXML):
def onAction(self, action):
if action == ACTION_BACKSPACE:
self.close()
if action == ACTION_PREVIOUS_MENU:
self.close()
if action == ACTION_MOVE_LEFT:
if os.path.exists('Q:\\resources\skins\Default\media\image 4.jpg') == True:
self.strAction = xbmcgui.ControlLabel(300, 200, 600, 200, '', 'font14', '0xFF00FF00')
self.addControl(self.strAction)
self.strAction.setLabel('Image is exist')
Вот XML Parser:
import xml.etree.ElementTree as ET
filename = 'script-tvguide-mainmenu.xml'
tree = ET.parse(filename)
root = tree.getroot()
controls = root.find('controls')
for control in controls.findall('control'):
#how do you create the if statement to check for the image through on xml if they are exist?
# 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))
Я попытался с:
if action == ACTION_MOVE_LEFT:
filename = 'script-tvguide-mainmenu.xml'
tree = ET.parse(filename)
root = tree.getroot()
controls = root.find('controls')
for control in controls.findall('control'):
texture = control.find('texture').text
if texture == 'tvguide_yellow.png':
self.strAction = xbmcgui.ControlLabel(300, 200, 600, 200, '', 'font14', '0xFF00FF00')
self.addControl(self.strAction)
self.strAction.setLabel('Image is exisit')
Я хочу знать, как вы можете использовать для написания в python для XML-анализатора, включить if заявление, что если у меня есть изображение под названием «Изображение 2.jpg», которое возвращается как истинное, я мог бы что-то сделать?
Вы просите нас рекомендовать синтаксический анализатор XML? В stdlib есть несколько [http://docs.python.org/2/library/xml.html] и популярные сторонние библиотеки, такие как ['lxml'] (http://lxml.de) , Stack Overflow не является хорошим сайтом для рекомендаций по использованию библиотеки или подобным субъективным вопросам, но если вы выберете любой из них, попробуйте написать код самостоятельно и застрять, это отличное место, чтобы получить помощь, чтобы отклеить. – abarnert
Как в стороне, почему это помечено как python-2.7, так и python-3.x? Вы пытаетесь написать код, который работает с обеими версиями? Или использовать одну версию, но открытую для переключения, если она облегчит вам жизнь? Или просто не знаете, какой из них вы используете? – abarnert
@abarnert да я. У меня есть синтаксический анализатор XML, но я просто хочу знать, как вы пишете, чтобы оператор if включал синтаксический анализатор xml в python, если у меня есть изображение под названием «image 4.jpg», то я могу изменить изображение с помощью xml id? см. XML-парсер в моем сообщении об обновлении. –