Parsen von verschachtelten xml mit jQuery (Kinder-Elemente)

Ersten ab hier ist die Struktur, die ich bin zu gehen für:

<ul>
   <li>
      <h3>State Name 1</h3>
      <ul>
         <li>
            <a href="storeurl" id="storeid">storename</a>
         </li>
         <li>
            <a href="storeurl" id="storeid">storename2</a>
         </li>
      </ul>
   </li>
   <li>
      <h3>State Name 2</h3>
      <ul>
         <li>
            <a href="storeurl" id="storeid">storename</a>
         </li>
      </ul>
   </li>
</ul>

Hier ist, wie meine xml-Datei strukturiert ist:

<storeList>
    <state>
        <stateName>Maine</stateName>
            <store>
                <storeName>first store</storeName>
                <storeID>store1</storeID>
                <storeURL>http://www.url.com</storeURL>
            </store>
            <store>
                <storeName>second store</storeName>
                <storeID>store2</storeID>
                <storeURL>http://www.url.com</storeURL>
            </store>
            <store>
                <storeName>third store</storeName>
                <storeID>store3</storeID>
                <storeURL>http://www.url.com</storeURL>
            </store>
    </state>
    <state>
        <stateName>Connecticut</stateName>
            <store>
                <storeName>first store</storeName>
                <storeID>store4</storeID>
                <storeURL>http://www.url.com</storeURL>
            </store>
    </state>
</storeList>

Ich bin mir nicht sicher, wie eine Schleife durch die Elemente, um die verschachtelte Liste.
Ich weiß, wie man schreiben von xml-Elementen auf html -, aber ich habe nicht getan, diese Art der verschachtelten Liste vor.

Habe ich versucht, oben zu brechen das script eine Schleife durch die verschiedenen Elemente, aber das hat nicht funktioniert und ich weiß, dass meine Struktur ist falsch für den zweiten Teil. Ich nehme an, ich werde zu tun haben, irgendeine Art von äußeren oder inneren umwickeln des ul-elements?

$(document).ready(function () {
                          $.ajax({
                              type: "GET",
                              url: "xml/storeList.xml",
                              dataType: "xml",
                              success: xmlParser
                          });
                          });

                          function xmlParser(xml) {

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

                              $(".storeListContent").append('<ul><li><h3>' +
                                $(this).find("stateName").text() +
                                '</h3></li></ul>');



                          });

                            /*$(xml).find("store").each(function () {
                           $(".storeListContent ul li").append('<ul><li>' +
                                '<a class="storeInactive" id="' +
                                $(this).find("storeID").text() +
                                '" href="' +
                                $(this).find("stateURL").text() +
                                '">' +
                                $(this).find("stateName").text() +
                                '</a>' +
                                '</li></ul>'
                                );
                            });*/

                          }

Arbeiten:
Musste ändern Sie den Datentyp html statt xml.
Wer noch einen Einblick in, warum das funktioniert?

Sie haben Zugang zu den server-code? Es könnte sein, VIEL einfacher, dies zu tun manipulation der auf dem server mit XSLT... und dann bekommen Sie die html-Zeichenfolge bereits vorbereitet.
Nein, zu müssen, es laufen alle frontend

InformationsquelleAutor Jason | 2011-12-07

Schreibe einen Kommentar