0

これは私の最初の質問であり、私は Web 開発の世界にまったく慣れていません。簡単な質問があるので、私のすべてのコードであなたを悩ませたくありません。より簡単な例を示します。

次のような XML があります。「example.xml」と呼びましょう。

<a>
   <b>1</b>
   <a>
      <b>2</b>
      <c>3</c>
   </a>
</a>

したがって、「c」要素を含むまたは含まない「a」のマルチレベルがあります。を使用してこのxmlを解析しているとき

$.ajax({type: "GET",async: false, cache: false, url: "example.xml",dataType: "xml",success: parseXml,  error: function(xhr, status, error) {alert(error)}});

parseXml は次のようになります。

function parseXml(xml){
    var result = new Object()
    $(xml).find('a').each(function(){
       result.b = $(this).find('b:first').text()
       result.c = $(this).find('c:first').text()
    }
}

したがって、ここでの私の問題は、この JQuery が最初のレベルの「a」に「c」がない場合でも、「c」を見つけることです。2番目の「a」内を検索して「c」を見つけると思います。そのため、find() 関数に ":first:" を追加して、2 番目の 'b' が返されないようにする必要がありました。これは最善の方法ではないと思います。が第 2 レベル「a」の後に宣言されていた場合、代わりに第 2 レベル「b」を取得していたはずです...あなたがフォローしているかどうかはわかりませんが、ここに私の質問があります。

  1. それは提案者の XML ファイルですか?
  2. そうでない場合、変更できないと仮定すると、第 2 レベルから情報を取得しない適切な XML パーサーを取得するにはどうすればよいでしょうか?

助けてくれてどうもありがとう!

4

1 に答える 1