tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
260
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mirkoku Tutorials.de Gastzugang
    Hi,

    ich habe ein Problem, undzwar erstelle ich als zwischenspeicher eine xml datei, um dort gewisse werte abzulegen wen meine datenbank nicht verfügbar ist.
    so hierfür muss ich in meinem xml abfragen ob ein wert null ist und es dan dort reinschreiben. Dazu muss ich sagen xml eher noch ned viel gemacht.

    Hier mal mein Xml
    HTML-Code:
    <Timesave>
      <Time>
        <Time1>14.4.2009 15:13:51</Time1>
        <Time2></Time2>
        <Mac>00:00:00:00:00:00</Mac>
        <Ip>000000</Ip>
      </Time>
    </Timesave>
    jetzt habe ich mal gebaut und mit dem code hier fügt er mir Time 2 immer ein auch wen Time2 != null ist.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    XmlDocument doc = new XmlDocument();
    doc.Load(path+"/test.xml");
     
    XmlNode xmlnd = doc.DocumentElement.SelectSingleNode(@"Time/Time2");
      
    if (doc.SelectSingleNode(@"Time/Time2") == null)
                {
                    xmlnd.InnerText = ti.timeToString;
                }
                else if (doc.SelectSingleNode(@"Time/Time2") != null)
                {
                    Console.WriteLine("creat new");
                }
             
                
             doc.Save(@path+"/test.xml");
             doc.RemoveAll();

    Hab ichn Denk Fehler oder von Grund auf falsch ?
    Gruß Und thx 4 help
    Mirkoku
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Zuerst: Halte dich bitte an die Netiquette!

    Zum Problem:
    Du darfst nicht darauf prüfen, ob die Node null ist. Diese ist vorhanden und ist daher nie null. Frag von der Node den InnerText ab und prüfe, was darin steht.
    Zu dem hast du noch einen Dreher drin:
    Du prüfst derzeit "wenn ungleich null, dann lege eine neue an".
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    mirkoku Tutorials.de Gastzugang
    so,

    ich habe mir jetzt was gebaut was mir den inhalt ausgiebt hier:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
     
        FileStream st = new FileStream(path + "/test.xml", FileMode.Open);
                XmlReader r = XmlReader.Create(st);
     
                while (r.Read())
                {
                    if (r.HasValue)
                    {
                        String test = r.Value.ToString();
                      
                        Console.WriteLine(test);
                    }
                    else 
                    {
     
                    }
     
     
                }
                st.Close();

    Jetzt wird mir alles ausgegeben, wo ein Value drin ist, nur das ist ja für mich nicht relevant ich muss ja wissen ob Time2 null oder not null ist. in die Richtung Teste ich gerade ob ich es irgendwie hinbekomme das er mir was auswirft wen er bei Time2 nichts findet.
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Der Weg über XPath war schon der Richtige. Jedoch solltest das von oben beachten!
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  5. #5
    mirkoku Tutorials.de Gastzugang
    hi Nico,

    habs jetzt hinbekommen zwar ein wenig drum rum gewurschtel. reicht aber für meine zwecke.

    hier meine Lösung.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
     
                FileStream st = new FileStream(path + "/test"+count+".xml", FileMode.Open);
                XmlReader r = XmlReader.Create(st);
     
                while (r.Read())
                {
                    if (r.HasValue)
                    {
                        String test = r.Value.ToString();
     
                        if (test == "noTime")
                        {
     
                            xmlnd.InnerText = ti.timeToString;
                        }
                }
                          }
            
                st.Close();
                doc.Save(@path + "/test" + count + ".xml");
                doc.RemoveAll();

    Erklärung:
    in Time2 schreibe ich einfach NoTime beim Erstellen rein und frag dan danach ab.

    Gruß
     

Ähnliche Themen

  1. Antworten: 64
    Letzter Beitrag: 17.12.10, 20:23
  2. In SQLite den höchsten Wert abfragen
    Von Teilzeitphilosoph im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 09.03.10, 15:39
  3. [C++][WinAPI]Checkbox Wert abfragen
    Von SlB im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 15.11.09, 22:12
  4. Bestimmten Wert aus Datenbank abfragen
    Von Genesyst im Forum PHP
    Antworten: 4
    Letzter Beitrag: 11.09.06, 09:17
  5. JTable geänderten wert abfragen
    Von xeal im Forum Java
    Antworten: 10
    Letzter Beitrag: 10.02.06, 13:52