0

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

<?xml version="1.0" encoding="ISO-8859-1"?>
<childrens>
  <child id="1" value="Root Catalog" parent_id="0">
    <child id="2" value="Apparel" parent_id="1">
      <child id="4" value="Shirts" parent_id="2"/>
      <child id="5" value="Pants" parent_id="2"/>
    </child>
    <child id="3" value="Accessories" parent_id="1">
      <child id="6" value="Handbags" parent_id="3"/>
      <child id="7" value="Jewelry" parent_id="3"/>
    </child>
     .
     .
     .
    <child id='bla bla'>
       <child id='bla bla'>
           <child id="1005" value="test1" parent_is="1111"/>
           <child id="1006" value="test12" parent_is="1111"/>
           <child id="1007" value="test123" parent_is="1111"/>
        <child>
    </child>
  <child >
</childrens>

私はこのjQueryコードを記述して、リーフ要素(子を持たない)を取得します。たとえば、ここでリーフノードはIDが4、5、6、7、1005、1006、1007です。

$.ajax({
    type: "GET",
    url: "test.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('child').children().each(function(){
            var id = $(this).attr('entity_id');
            alert(id)
        });
    }
});

動作していません

4

1 に答える 1

1

child「リーフノード」であり、子を持たない要素のみを選択する場合は、:emptyセレクターを使用して、選択を次のように変更できます。

find('child:empty')

次に、削除して子ではなく、選択した要素を繰り返し処理します.children()

サンプルXMLには、と呼ばれる属性がありませんentity_id。XMLの例では、を選択しますattr('id')

$.ajax({
    type: "GET",
    url: "test.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('child:empty').each(function(){
            var id = $(this).attr('id');
            alert(id)
        });
    }
});
于 2013-01-26T15:13:29.300 に答える