Announcement

Collapse
No announcement yet.

XML +ajax/ jquery auf leeres element prüfen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML +ajax/ jquery auf leeres element prüfen

    Hallo Forum..

    würde gerne auf ein leeres element prüfen.

    bsp1. server liefert...

    HTML Code:
    <test>
    
    <test1 a1="jo" a2="jojo">
        <test_1></test_1></test1>
    <test2 a1="jo">
        <test_2/></test2>
        <test_2/></test2>
    
    </test>
    Die Frage ist jetzt wie überprüfe ich ob test_2 leer ist. hierzu brauche ich eigentlich nur das erste element von test_2.

    Mein abfrage
    PHP Code:
     $(xml).find("test").each(function()  
      {

        if( $(
    this).find("test_2:empty"))
        {
            
    //..   alert( $(this).find("Point").attr('name'))
               
    alert("leer hippie");
        }
        else
        { 
    alert("nö");
        } 
    mit "empty" geht schonmal nicht.

    nunja könnte das ganze auch andersrum aufziehen indem ich sage

    liefere mir nur ein alert() wenn in <test_2> ein "<point name="hippieayeh"></point>" vorhanden ist

    meine abfrage, die soweit success zurückliefert
    PHP Code:
    $.ajax({
    type"GET",
    url"localhost/test/test?language=de",
    data: {
            .. /
    paar parameter
            
        
    },

    dataType"xml",
    successparseXml
    });
    function 
    parseXml(xml) {

      $(
    xml).find("test").each(function()  {

         
    alert( $(this).find("Point").attr('name'))
         ;
          });
    }

    }); 
    findet das erste Point ..überhaupt und gibt mir den inhalt von dem attribut name aus.. ok... soweit..

    Frage ist, wie geht das....
    pseudo-code:
    alert( $(this).find("Test_2\Point").attr('name'))
    bedeutet, soll nur in Test_2 Point ausgeben..wenn vorhanden (ansonst alert bspw)

    habe leider Probleme mit dem traversieren von xml ;..(

  • #2
    http://api.jquery.com/html/
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      is klar das jquery.com meine erste anlaufstelle ist . habe dort auch schon viel hilfe geholt ...
      leider half mir das in diesem fall nicht weiter da bei einigen methoden:

      "This method is not available on XML documents."
      steht

      edit: vermute das bei http://api.jquery.com/empty-selector/ ebenfalls so ist, oder ich mach was falsch

      Comment


      • #4
        http://api.jquery.com/text/

        .text() can be used in both XML and HTML documents. The result of the .text() method is a string containing the combined text of all matched elements.
        Christian

        Comment


        • #5
          soweit.. ich habe für mein problem eine naja mäßige lösung gefunden die mich zwar nicht zufrieden stellt aber anscheinend zumindest ausreichend ist...

          leider gibt es anscheinend
          Pseudocode: ( $(this).find("test\Test_2\Point").attr('name')) nicht

          ich habe mi jetzt beholfen und wenigsten herausgefunden, dass man

          $(xml).find("test").each(function()
          {
          $(xml).find("test2").first().each(function()
          {
          alert( $(this).find("Point").attr('name'));

          });

          });

          machen kann .. hmmm.. finde ich merkwürdig aber scheint zu gehen


          soll heissen nach der xmlstruktur:
          <test>

          <test1 a1="jo" a2="jojo">
          <test_1></test_1>
          </test1>
          <test2 a1="jo">
          <test_2>//evtl. <point name="dings"/>enthalten </test_2>
          </test2>
          <test2/>..</test2>

          </test>
          suche <test> dort <test2> dort das erste element, das erste point wenn vorhanden.. und gebe attr. name (von point) aus... naja so zumindest mein Verständnis...
          ob es was einfacheres gibt vgl. pseudocode weiß ich nicht....(noch nicht)

          Comment


          • #6
            so jetzt hab ich ne andere Variante:
            http-request-objekt (xmlHttp) vorher...dann..
            klaro die server abfrage... antwortet mit ner xml.. dann benutze ich das dom plugin siehe.. code und starte ne (meiner Meinung nach) einfache abfrage, traversiere,... nach nem attribut.
            PHP Code:
            var url "localhost/blbala/bla?urlparameter1=bla1;
                            
                              // Öffnen der Verbindung zum Server
                              xmlHttp.open("
            GET", url, true);
                            
                              // Festlegen einer Funktion, die der Server aufrufen soll, wenn er fertig ist
                              xmlHttp.onreadystatechange = updatePage;
                            
                              // Absenden der Anfrage
                              xmlHttp.send(null);
                              
                              
                            
                            
                            
                            function updatePage() {
                              if (xmlHttp.readyState == 4) {
                            var response = xmlHttp.responseText; 
                               
                               var xml = response;
                            var temp = $.xmlDOM( xml).find('test>test2>test_2>point').attr('name'); //den ganzen scheiss in nen dom rein.. und durchhangeln... anschliessen das attribut von test2 rausfinden..
                            alert(temp); //da isses , wie geil es funzt... ;) 
            hilfreich war dabei das kleine Mini- plugin ...
            http://outwestmedia.com/jquery-plugins/xmldom/
            und
            http://de.wikipedia.org/wiki/XMLHttpRequest das objekt muss natürlich vorher gemacht werden...das Ganze alternativ zum meinen Ajax get..

            die suche durch den baum geht damit einfacher finde ich ...

            wer was besseres hat darf gerne mal posten danke an Christian (wie immer!) .. für den stupser
            Zuletzt editiert von sten; 15.06.2012, 07:22.

            Comment

            Working...
            X