XML - Nodenamen auslesen



  • Hey,
    habe eine XML-Datei eingelesen, weil es in meinem Fall ganz hilfreich ist. Wollte nun den C++ Quletext so modellieren, dass ich die Werte der Unterknoten (Nodes) des übergeordneten ersten knoten aulesen kann.

    <.......>
    
    <text-list>
    
    <text id="4585">
      <Name>Müller</Name> 
      <Ware>Karton</Ware> 
      <Auftragsnummer>122002255</Auftragsnummer>
    </text>
    

    Hier ist zu sehen, wie die XML-Datei aufgebaut ist. Ich möchte nun also den Wert (String) Name,Ware und Auftragsnummer ausgelesen bekommen. NICHT DEN WERT IN DEM KNOTEN(Müller, Karton usw.)!! Nur den Knotennamen! Diese Werte sollen dann in einem Array gelagert werden. Mit ChidNode habe ich ja z.B. Zugriff auf den Knoteh "<text>". Mit ChildValue müsste ich dann ja Zugriff auf den Knotenaen bekommen, oder?
    Kann mir jemand helfen. Die BCB-Hilfe ist ganz nett aber sie hat mir leider nicht helfen können.

    Gruß
    R. 🤡

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke



  • mit Hilfe der FAQ und der BCB-Hilfe:

    #include <XMLDoc.hpp>
    ...
    _di_IXMLDocument XML = LoadXMLDocument("c:\\test.xml");
    _di_IXMLNodeList NodeList = XML->DocumentElement->ChildNodes;
    
    int count = NodeList->Count;
    for (int i=0; i<count; i++)
    	{
    	_di_IXMLNode TestNode = NodeList->Nodes[i];
    	int count1 = TestNode->ChildNodes->Count;
    	for (int j=0; j<count1; j++)
    		{
    		String t = (String)TestNode->ChildNodes->Nodes[j]->NodeName;
    		}
    	}
    


  • Hey, danke dir. Suche demnächst besser in den FAQ's.



  • Hey,
    habe nochmal ein kleines Problem. Bekomme bei dem Return der Methode folgenden Fehler ausgeworfen:

    [C++ Warnung] Sprachauswahl.cpp(44): W8075 Verdächtige Zeigerumwandlung
    [C++ Fehler] Sprachauswahl.cpp(44): E2285 Keine Übereinstimmung für 'AnsiString::operator =(AnsiString *)' gefunden

    Übergebe ein Array mit String-Werten (können auch AnsiStrings sein).
    Was ist verkehrt?



  • Hallo

    Schön das du die Fehlermeldung postest, der Code dazu wäre aber noch schöner.
    Ich rate anhand der Meldung, das du versucht einen AnsiString zu übergeben, wo ein AnsiString* gefordert ist.

    bis bald
    akari


Anmelden zum Antworten