tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
280
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Deficiency Deficiency ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    13
    Hi zusammen.

    Ich habe ein kleines Problem in Javascript. Ich komme aus der Java welt und hab so ein paar Probleme mich komplett in JavaScript reinzudenken

    Folgendes Probelm. Ich lese ein XML File ein (das funktioniert) und will nun die eingelesenen Datensätze anhand einen Strings gruppieren.
    In Java hätte ich das mit ner HashMap<String, ArrayList> gemacht. Der Key wäre dann das Datum (als String) und in der ArrayList die Elemente die auf das gleiche Datum fallen.

    Ich habe keine Ahnung wie ich das in JavaScript abbilden kann.



    Hier ist was ich habe:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    <?xml version="1.0" encoding="iso-8859-1"?>
    <coll>
        <item1 id="1">
            <date>20.12.2012</date>
            <desc>blub</desc>
        </item1>
        <item1 id="2">
            <date>20.12.2012</date>
            <desc>blubber</desc>
        </item1>
        <item1 id="3">
            <date>22.12.2012</date>
            <desc>blubberblub</desc>
        </item1>
        <item1 id="4">
            <date>23.12.2012</date>
            <desc>bla</desc>
        </item1>
    </coll>

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script type="text/javascript" src="jquery.js"></script>
        <title>Read and Sort</title>
         <script>
             $(document).ready(function(){
                $.ajax({
                    type: "GET",
                    url: "test.xml",
                    dataType: "xml",
                    success: function(xml) {
                        $(xml).find('item1').each(function(){
                            var id = $(this).attr('id');
                            var date = $(this).find('date').text();
                            var desc = $(this).find('desc').text();
                            $('<div class="items" id="link_'+id+'"></div>').html(id).appendTo('#page-wrap');
                            $('<div class="items" id="link_'+id+'"></div>').html(date).appendTo('#page-wrap');
                            $('<div class="items" id="link_'+id+'"></div>').html(desc).appendTo('#page-wrap');
                                                   
                        });
                    }
                });
            });
         </script>
    </head>
    <body>
        <div id="page-wrap">
             <h1>Read and Sort</h1>
         </div>
    </body>
    </html>
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    HashMap == JavaScript Objekt
    ArrayList == JavaScript Array

    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    var xml = '<coll><item1 id="1"><date>20.12.2012</date><desc>blub</desc></item1><item1 id="2"><date>20.12.2012</date><desc>blubber</desc></item1><item1 id="3"><date>22.12.2012</date><desc>blubberblub</desc></item1><item1 id="4"><date>23.12.2012</date><desc>bla</desc></item1></coll>';
     
    var hashMap = {};
     
    $(xml).find('item1').each(function() {
        var $item = $(this);
        var dateString = $item.find('date').text();
     
        if(!hashMap.hasOwnProperty(dateString)) {
            hashMap[dateString] = [];
        }
     
        hashMap[dateString].push(this.id);
    });
     
    alert(JSON.stringify(hashMap));

    Ausgabe

    {"20.12.2012":["1","2"],"22.12.2012":["3"],"23.12.2012":["4"]}
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 24.09.08, 00:10
  2. Datei lesen int und string sortieren
    Von Thomasio im Forum C/C++
    Antworten: 15
    Letzter Beitrag: 09.08.06, 19:18
  3. Antworten: 8
    Letzter Beitrag: 27.06.05, 18:33
  4. Antworten: 7
    Letzter Beitrag: 11.05.02, 15:40