3

私はこのXMLファイルを持っています、

<tour title="Bavaria, Austrian, and the Alps" baseCost="1799.99">
<availability start="2011/03/25" end="2011/9/30"/>
<description>

</description>

<stop day="1">
<title>Munich, Germany. </title>

<description></description>
<latitude>48.15</latitude>
<longitude>11.5833333</longitude>
<hotels>
<hotel name="Europa Hotel" stars="3" premium="0.0"/>
<hotel name="Excelsior Hotel" stars="4" premium="59.99"/>
<hotel name="Grand Hotel" stars="5" premium="199.99"/>
</hotels>

</stop>

<stop day="2">
<title>Garmisch, Germany.</title>

<description>Major destination of the Bavarian alps. Site of a major World Cup ski race.</description>
<latitude>47.5</latitude>
<longitude>11.0833333</longitude>
<hotels>
<hotel name="Europa Hotel" stars="3" premium="0.0"/>
</hotels>
</stop>

必要なものはすべて解析しましたが、問題は次のような出力を表示する必要があることです。

<title name>
 <stop name>
  <hotels names>
 <stop name>
  <hotels names>

しかし、出力は次のようになります。

<title name>
<stops names>
<hotels names>

すべて1つの順序でのみ、何を使用すればよいですか、insertAfter()またはafter()?

これが私のjQueryコードです:http: //pastebin.com/dmETKi9E

HTMLコード:

 <body>
    <h1 id="header"></h1>
    <h2 id="stop"></h2>
    <p id="hotel"></p>
 </body>
4

2 に答える 2

2

UPDATE テスト済みで動作中 問題は HTML にあります。すべてのヘッダーはヘッダーと共に入り、すべてのストップはストップに入り、すべてのホテルはホテルに入ります。代わりに、新しいアイテムごとに新しいオブジェクトを作成する必要があります。wrap() jquery コマンドを見てください。あなたがやりたいことは

function processXml(xml) {
  var header, stop, hotel;
  $(xml).find("tour").each(function() {
    header = $('<h1 class="header" />');
    header.html($(this).attr("title"));

    $(this).find("stop").each(function() {

      stop = $('<h2 class="stop" />');
      stop.html(($(this).find("title").text()));

      $(this).find("hotel").each(function() {
       hotel = $('<p class="hotel" />');
       hotel.html(($(this).attr("name")));
       stop.append(hotel);
      });

      header.append(stop);
    });
    $('body').append(header);
  });
}

どういたしまして :)

于 2012-08-02T05:52:07.340 に答える
-1

問題は、あなたが望んでいた方法が適切にフォーマットされたxmlではないことだと思います。出力はどこに行きますか?なぜ特別なフォーマットが必要なのですか?xmlには終了タグも含めるべきではありませんか?

于 2012-08-02T05:46:15.840 に答える