Текущий Python Код:
import xml.etree.ElementTree as ET
from xml.dom import minidom
def sortchildrenby(parent, attr):
parent[:] = sorted(parent, key=lambda child: child.get(attr))
# Declaration of XML Doc
tree = ET.parse('testfile.xml')
mainEntry = ET.parse('heading.xml')
rootEntry = mainEntry.getroot()
root = tree.getroot()
# Declaration of Parents / Children
sortchildrenby(root, 'mainsite')
def fileCreation():
for x in root:
print(x.tag, x.attrib)
print('\n')
for rE in rootEntry:
print(rE.tag, rE.attrib)
fileCreation()
Текущий XML Листы;
XML Требуется курс:
<?xml version="1.0"?>
<settings>
<filename>guide.xml</filename>
<postprocess grab="y" run="n">test</postprocess>
<postprocess run="y" grab="n">test</postprocess>
<user-agent>Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0</user-agent>
<logging>test</logging>
<skip>noskip</skip>
<retry>5</retry>
<timespan>5</timespan>
<update>f</update>
<decryptkey site="testsite.com">E0$$#</decryptkey>
XML Строка после заголовка:
<channel site="testsite.com" site_id="ts3" xmltv_id="9999.testsite.com">#0 HD</channel>
</settings>
XML Файл со строками, добавляемыми в файл:
<mainsite site="testsite.com" site_id="3848" xmltv_id="3848.testsite.com">Sony Channel</mainsite>
<mainsite site="testsite.com" site_id="0983" xmltv_id="0983.testsite.com">Sony Channel</mainsite>
<mainsite site="testsite.com" site_id="3485" xmltv_id="3485.testsite.com">Sony Channel</mainsite>
<mainsite site="testsite.com" site_id="9029" xmltv_id="9029.testsite.com">Sony Channel</mainsite>
<mainsite site="testsite.com" site_id="4837" xmltv_id="4837.testsite.com">Sony Channel</mainsite>
<mainsite site="testsite.com" site_id="1273" xmltv_id="1273.testsite.com">Sony Channel</mainsite>
<mainsite site="testsite.com" site_id="9483" xmltv_id="9483.testsite.com">Sony Channel</mainsite>
В основном то, что я пытаюсь do - вывод, который я получаю на терминале, отлично показывает, как я хочу, чтобы это выводилось, но я не могу заставить его выводить таким же образом в фактический xml файл. Я хочу отделить каждый «основной сайт» от заголовка, чтобы я мог выполнить каждый файл в другой программе.
ПРИМЕР:
('filename', {})
('postprocess', {'grab': 'y', 'run': 'n'})
('postprocess', {'grab': 'n', 'run': 'y'})
('user-agent', {})
('logging', {})
('skip', {})
('retry', {})
('timespan', {})
('update', {})
('decryptkey', {'site': 'testsite.com'})
('mainsite', {'xmltv_id': '2929.testsite.com', 'site_id': '2929', 'site': 'mainsite'})
TIA