2014-11-25 1 views
0

jQuery에서 XML을 파싱하는 데 문제가 있습니다. 나는이네임 스페이스를 찾는 방법 XML에서 jQuery의 다른 이름을 피하십시오.

<field name="scheduleItems"> 
    <value> 
    <field name="programID">364</field> 
    <field name="programTime">05:00</field> 
    <field name="programTimeEnd">05:30</field> 
    <value> 
</field> 

같은 XML 파일을 가지고 그리고 이것은 내가 의 결과 programTime를 인쇄 할 때

$.ajax({ 
    type: "GET", 
    url: xmlFeed, 
    dataType: "xml", 
    success: function(xml) { 
     $(xml).find("field[name*='scheduleItems']").each(function(i, obj){ 
      $(xml).find("value").each(function(i, obj){ 
       var programTime = $(this).children("field[name*='programTime']").text(); 
       var programTimeEnd = $(this).children("field[name*='programTimeEnd']").text(); 
       }); 
     }); 
    }, 
    error: function() { 
     console.log("has error!"); 
    } 
}); 

을 구문 분석 할 때 사용 아약스 내 코드입니다. programTimeEnd이 >>"programTime"와 같은 추가합니다 : "05 : 0005 : 30"

을 내가 그것을 해결할 수 있습니다. 모두에게 감사드립니다.

답변

0

"포함"및 "programTimeEnd"에 "programTime"이 포함되어 있음을 의미하는 *=을 사용합니다. "equals"에 =을 사용하십시오.

var parser = new DOMParser(); 
 
var xml = parser.parseFromString(
 
    '<field name="scheduleItems">'+ 
 
    ' <value>'+ 
 
    ' <field name="programID">364</field>'+ 
 
    ' <field name="programTime">05:00</field>'+ 
 
    ' <field name="programTimeEnd">05:30</field>'+ 
 
    '</value>'+ 
 
    '</field>', 
 
    'application/xml' 
 
); 
 

 
var output = document.getElementById('output'); 
 
$(xml).find('field[name="scheduleItems"]').each(
 
    function(i, obj){ 
 
    $(this).find("value").each(
 
     function(i, obj){ 
 
     var programTime = $(this).children('field[name="programTime"]').text(); 
 
     var programTimeEnd = $(this).children('field[name="programTimeEnd"]').text(); 
 
     output.appendChild(
 
      document.createTextNode(
 
      programTime + ' - ' + programTimeEnd 
 
     ) 
 
     ); 
 
     output.appendChild(document.createElement('br')); 
 
     } 
 
    ); 
 
    } 
 
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre id="output"></pre>

참고 : 귀하의 XML은 네임 스페이스가 없으며 JQuery와 XML 네임 스페이스에 대한 지원이 없기 때문에 이것은 좋은 일입니다.

관련 문제