3

javascript/jquery を使用して XML ファイルのノードを読み取る際に問題が発生しました。

このようなxmlファイルがあるとします

<root>
  <people>
    <name>Jack</name>
    <age>18</age>
  </people>
  <name>Rose</name>
</root>

この xml ファイルでは、第 1 レベルに「Rose」という内容の名前があり、第 2 レベルにも「Jack」という内容の名前があります。

jqueryの関数を使用してファイルを読み取ろうとしました:

var NAME;
$.get('myxml.xml', 'xml', function(d){
    NAME = $(d).find('name').text();
});

ただし、この方法では、NAME には常に「JackRose」のように 2 つのノードのコンテンツの組み合わせが含まれます。

2 番目のノード (「Rose」ノード) の内容を取得して保存したいだけの場合は、どうすればよいですか?

ありがとうございました!

4

3 に答える 3

3

each次の方法を使用できます。

$.get('myxml.xml', 'xml', function(d){
    $(d).find('name').each(function(){
        var txt = $(this).text()
    });
});

またはeq方法:

$.get('myxml.xml', 'xml', function(d){
    var $name = $(d).find('name');
    var first = $name.eq(0).text()        
    var second = $name.eq(1).text()
});
于 2012-10-03T17:53:07.883 に答える
2

試す

var NAME;
$.get('myxml.xml', 'xml', function(d){
    NAME = $(d).find('root > name').text();
});
于 2012-10-03T18:00:23.423 に答える
2

2 番目のものは要素の直接の子であるため、次のrootように見つけることができます。

var NAME;
$.get('myxml.xml', 'xml', function(d){
    NAME = $(d).find('> name').text();
});

xml によっては、ルート要素が実際にはroot要素ではなく、多くの場合<xml>、ルート要素として要素が存在する場合、セレクターは('root > name')!

于 2012-10-03T18:01:13.187 に答える