das ist mein xmlparser für bestimmte dateien
Code: Alles auswählen
void MasterLevel_XmlParser::readDataGroup( QFile &filename, QListBox *lbx )
{
QListBox *lbi = new QListBox( lbx );
QFile *file = new QFile( filename );
if (!file->open(IO_ReadOnly)) return; // kann datei nicht lesen
QDomDocument doc;
if (!doc.setContent(file)) return; // kann datei nicht parsen
QDomElement rootElement = doc.documentElement();
QDomNodeList groupName = rootElement.childNodes();
for (uint i = 0; i < groupName.length(); ++i)
{
QDomNode node = groupName.item(i);
if (node.isNull() || !node.isElement() || node.nodeName() != "group") continue;
QDomElement element = node.toElement();
QString name = element.attribute("name");
lbi->insertItem( name );
}
}
(das SIGNAL steht beim anklicken auf highlighted(int), im Qt Designer
erstelltes form). der aufruf: (abgeleitete klasse vom uifile)
Code: Alles auswählen
void QDAoCGR_MasterLevel::slotAuswahl_Reich()
{
QString alb, hib, mid;
alb.append( "masterlevel/albion.xml" );
hib.append( "masterlevel/hibernia.xml" );
mid.append( "masterlevel/midgard.xml" );
QFile alb_file( alb );
QFile hib_file( hib );
QFile mid_file( mid );
MasterLevel_XmlParser ml_parser;
/*
* Auswahl der einzelnen Reiche
* Übergebe das QFile und die QListBox an den parser
* wenn erfolge, zeige die einzelnen Namen in der 2
* QListbox: listBox_Klasse an.
*/
if ( listBox_Reich->isSelected(1) ){
ml_parser.readDataGroup( alb_file, listBox_Klasse );
}else if( listBox_Reich->item(2) ){
ml_parser.readDataOption( hib_file, listBox_Klasse );
}else if( listBox_Reich->item(3) ){
ml_parser.readDataGroup( hib_file, listBox_Klasse );
}else{
QMessageBox::information( this, "DAoC - GR", "Kann die angegebene Datei nicht finden." );
}
}
Ich klick auf die 1 ListBox (1 Item, usw.) danach soll er die datei auslesen
und die namen in der 2 ListBox anzeigen, was läuft da falsch? bzw. was mah ich da falsch?
auschnitt aus der xmldatei: (was in group name steht soll er in der 2
QListBox anzeiegen, anschliessen drück ich den namen an soll er dann in
er 3 QListBox den option key anzeigen)
Code: Alles auswählen
<Albion_ML application="DAoC-GR" version="v1" >
<group name="Waffenmeister" >
<option key="Kampfmeister" />
<option key="Kriegsherr" />
</group>
<group name="Kabbalist" >
<option key="Anrufer" />
<option key="Sturmlord" />
</group>
<group name="Kleriker" >
<option key="Kriegsherr" />
<option key="Vollender" />
</group>
<group name="Ordensbruder" >
<option key="Kampfmeister" />
<option key="Vollender" />
</group>
<group name="Infiltrator" >
<option key="Meisterspion" />
<option key="Kampfmeister" />
</group>
......