2013-04-01 3 views
0

Это мой arty.xml:Как загрузить все значения атрибута из XML

<child_2 entity_id="2" value="Root" parent_id="1"> 
    <child_4 entity_id="4" value="Activities" parent_id="2"> 
     <child_10066 entity_id="10066" value="Physical1" parent_id="4"> 
      <child_10067 entity_id="10067" value="Cricket" parent_id="10066"> 
       <child_10068 entity_id="10068" value="One Day" parent_id="10067"/> 
      </child_10067> 
     </child_10066> 
     <child_10069 entity_id="10069" value="Test2" parent_id="4"/> 
     <child_10070 entity_id="10070" value="Test3" parent_id="4"/> 
     <child_10071 entity_id="10071" value="Test4" parent_id="4"/> 
     <child_10072 entity_id="10072" value="Test5" parent_id="4"/> 
     <child_5 entity_id="5" value="Physical" parent_id="4"/> 
    </child_4> 
</child_2> 

Это моя попытка прочитать:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<link rel="stylesheet" type="text/css" media="all" href="style.css" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
<script type="text/javascript" src="jquery.js"></script> 
<title>Using jQuery and XML to populate a drop-down box demo</title> 
<script> 
$(document).ready(function(){ 
    $.ajax({ 
    type: "GET", 
    url: "atry.xml", 
    dataType: "xml", 
    success: function(xml) { 
    var select = $('#mySelect'); 

    $(xml).find('child_2').each(function(){ 
    $(this).find('child_4').each(function(){ 
    var value = $(this).attr('value'); 
    select.append("<option class='ddindent' value='"+ value +"'>"+value+"</option>"); 
     }); 
    }); 
     select.children(":first").text("Select").attr("selected",true); 
} //sucess close 
}); 
}); 
</script> 
</head> 
<body> <div id="page-wrap"> 
<select id="mySelect"> 
<option>loading</option> 
</select> 
</div> 
</body> 
</html> 

Здесь я пытаюсь загрузить все атрибуты значение и создать список выбора ...

Но проблема в том, что я не получаю все детские значения ...

Помоги мне это ...

ответ

0

Я думаю, что вам не придется перебрать еще раз, вы можете попробовать это:

$(xml).find('child_2').each(function(){ 
    $(this).find('child_4').children().find('[entity_id]').each(function(){ 
     var value = $(this).attr('value'); 
     select.append("<option class='ddindent' value='"+ value +"'>"+value+"</option>"); 
    }); 
}); 
+0

я думаю, что вы не получаете мою точную Que. Я хочу, чтобы все значения атрибута, где был закрыт элемент child_4. например: - «Действия Physical1 Cricket One Day Test2 Test3 Test4 Test5 Physical» – 2013-04-01 07:10:44

+0

'$ (this) .find ('child_4'). children(). find ('[entity_id]'). each (function() {' try с этим, как было предложено в ответе. – Jai

+0

ohhh да его возвращение только child_4 ребенок, но я хочу, чтобы все child_10069 child_10070 child_10071 child_10072 ... спасибо за эту помощь jay – 2013-04-01 07:31:10

1

привет я тестировал в моем местном это работает прекрасно

может быть, ваша проблема в том, что вы используете $ (this) .attr ('value');

так что вы можете попробовать, как это

$(document).ready(function(){ 
     $.ajax({ 
     type: "GET", 
     url: "atry.xml", 
     dataType: "xml", 
     success: function(xml) { 
     var select = $('#mySelect'); 

     $(xml).find('child_2').each(function(){ 
     var value = $(this).find('child_4').attr('value'); 
     select.append("<option class='ddindent' value='"+ value +"'>"+value+"</option>"); 
      }); 
}); 
+0

его единственный возврат 'Activities'. Я хочу все как' Activities Physical1 Cricket Один день Test2 Test3 Test4 Test5 Physical.' – 2013-04-01 07:05:03

+0

эй Джек я добавил новый ответ http://stackoverflow.com/questions/15738671/how-to-load-all-attribute-value-from-xml/15739556#15739556 , пожалуйста, проверьте его, я думаю, что это поможет вам. –

+0

дать ответ ... – 2013-04-01 08:50:43

0

вы можете получить все значения ребенка тегов, как это.

$(document).ready(function(){ 
     $("xml").find('child_2').each(function(){ 
     $(this).children().map(function(){ 
      $("#mySelect").append("<option class='ddindent' >"+$(this).attr('value')+"</option>"); 

      var tag = this.tagName; 

      $(tag).children().map(function(){ 
       //alert("alert : " + this.tagName + " value : " + $(this).attr("value")); 
       $("#mySelect").append("<option class='ddindent' >"+$(this).attr('value')+"</option>"); 
      }); 
      }); 
     }); 
      //select.children(":first").text("Select").attr("selected",true); 
    } //sucess close 

    ); 
    </script> 

надеюсь, что это поможет вам :)

+0

вы можете добавить полный код ... b'coz У меня есть некоторые проблемы в моей системе для загрузки значения ... , – 2013-04-01 07:57:06

Смежные вопросы