XML-Datei durchsuchen (war: Suchen)



  • Hey liebe Leute,
    ich habe eine Bitte. Meine bisherigen Probleme konnte ich alle lösen. Aber nun habe ich eine Frage. Mal wieder eine XML-Geschichte!!!
    Die XML-Datei sieht wie folgt aus:

    <?xml version="1.0" encoding="ISO-8859-1" ?> 
    - <text-list>
    - <text prefix="Caption" id="Button_Para">
      <deu>Prameterliste</deu> 
      <eng>Pramameterlist</eng> 
      </text>
    - <text prefix="Caption" id="Button_Stellk">
      <deu>Stellkurve</deu> 
      <eng>Curve</eng> 
      </text>
    - <text prefix="Caption" id="Button_Proto">
      <deu>Protokoll erstellen</deu> 
      <eng>Make Protokoll</eng> 
      </text>
    - <text prefix="Caption" id="Button_ParaDr">
      <deu>Parameter drucken</deu> 
      <eng>Print Parameters</eng> 
      </text>
    - <text prefix="Caption" id="Button_BerPr">
      <deu>Berechnung der Prüfsumme</deu> 
      <eng>Calculate the Checksum</eng> 
      </text>
      </text-list>
    

    Mit FindNotes kann ich ja schön die einzelnen Knoten suchen. Leider haben hier die Knoten eine gleiche Benennung (deu oder eng). Wie kann ich nun nach der id und dem Prefix suchen und entscheiden lassen, welchen Unterknoten ich haben möchte? Die ID ist ja immer verschieden und befindet sich in den ersten Unterknoten des Hauptknotens. Gibt es da etwas vorgefertigtes? Bin da echt überfragt. FindNode ist da etwas ungenügend. Oder habe ich etwas übersehen?
    Es wäre toll, wenn jemand eine Idee hätte und mir sogar eine vorgekaute Lösung anbieten könnte wäre das echt sehr nett.
    Danke euch!

    ButtonParaDr = Node->ChildNodes->FindNode("deu")->NodeValue;??????

    Edit:
    Bitte aussagekräftige Überschriften verwenden. Danke!



  • schau mal in der FAQ, da gibts ein Beispiel vom Schreiben und Lesen von XML-Dateien



  • Hey, danke dir, aber leider hilft das nicht weiter. Hier haben die Unterknoten keine Attribute. Muss ja die Entscheidung durch Attribute treffen können. Das ist leider auch nur ein simples Beispiel. Meine XML-Datei wird demnächst einmal riesige Datensätze enthalten. Vielleicht fällt dir nochetwas ein. Das wäre toll.



  • Gibt es nicht jemanden er noch eine Idee hat?



  • versuch mal das

    #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];
        String t = (String)TestNode->GetAttribute("id");
        if (t == "Button_Para")
          {
          String LicName1 = TestNode->ChildNodes->FindNode("deu")->NodeValue;
          String LicName2 = TestNode->ChildNodes->FindNode("eng")->NodeValue;
          }
        }
    

    einen Tip: die BCB-Hilfe zu LoadXMLDocument einschließlich der Verknüpfungen ist sehr informativ

    zumindest für mich, da ich keine Ahnung von xml hab 😃



  • Danke dir, dass ist sehr nett!


Anmelden zum Antworten