2016-10-07 2 views
-1

XML 문서를 파싱하는 데 경험이 거의 없으므로 부담하십시오. 지난 며칠 동안 나는 아래 주어진 xml 샘플을 파싱하는 데 어려움을 겪고있다!

인터넷을 검색하고 다른 사람들의 의견을 읽은 후 최선의 방법은 내가 다루는 xml 유형에 $ parseXML을 사용하는 것입니다.

xml을 확인하고 다음 코드를 사용했지만 잘못된 XML이 계속 나타납니다! 내 목표는 <dict>에 속하는 모든 문자열 값을 가져와 <tr> 안에 사용하는 것입니다. 전문가가이 깨진 코드를 수정하도록 도와 주시면 감사하겠습니다.

var div = "<tr id=\""+i+"\">\n" + 
"<td>"+i+"</td>\n" + 
"<td><img src=\""+ categoryIcon +"\" height=\"42\" width=\"42\"></td>\n" + 
"<td>\n" + 
"<a href=\"javascript:doit('id=" + id + "&name=" + name + "&category=" + category + "&categoryIcon=" + categoryIcon + "','"+ country +"')\" onclick=\"selectLink(this);\">" + name + "</a><br> \n" + 
"<br></td></tr>\n\n"; 

$("#myDiv").append(div); 

자바 스크립트 :

<html> 
<head> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<script> 
function myfunction(){ 
alert("me here"); 

var xml='<?xml version="1.0" encoding="UTF-8"?> <dict><key>ItemLists</key> <array><dict><key>id</key> <string>1</string> <key>name</key> <string>fruits</string> <key>category</key> <string>US Fruits</string> <key>categoryIcon</key> <string>http://www.somsite.com/categories/1.jpg</string> <key>country</key> <string>US</string> </dict> <dict><key>id</key> <string>2</string> <key>name</key> <string>Vegetable</string> <key>category</key> <string>Eu Vegetable</string> <key>categoryIcon</key> <string>http://www.somsite.com/categories/2.jpg</string> <key>country</key> <string>EU</string> </dict> </array> </dict>'; 
    xmlDoc = $.parseXML(xml), 
    $xml = $(xmlDoc); 




$($xml).each(function(){ 

//alert($(this).find("dict>string").text()); 
//alert($(this).find("dict>key").text()); 
alert($(this).find("dict>categoryIcon>string").text()); 
}); 

}; 
</script> 
</head> 
<body> 
<button onclick="myfunction()">parse</button> 
</body> 
</html> 

XML을 구문 분석 :

<?xml version="1.0" encoding="UTF-8"?> 
<dict><key>ItemLists</key> 
<array><dict><key>id</key> 
<string>1</string> 
<key>name</key> 
<string>fruits</string> 
<key>category</key> 
<string>US Fruits</string> 
<key>categoryIcon</key> 
<string>http://www.somsite.com/categories/1.jpg</string> 
<key>country</key> 
<string>US</string> 
</dict> 

<dict><key>id</key> 
<string>2</string> 
<key>name</key> 
<string>Vegetable</string> 
<key>category</key> 
<string>Eu Vegetable</string> 
<key>categoryIcon</key> 
<string>http://www.somsite.com/categories/2.jpg</string> 
<key>country</key> 
<string>EU</string> 
</dict> 

</array> 
</dict> 

답변

0
<script> 
    function myfunction() { 
     alert("me here"); 
     var xml = '<?xml version="1.0" encoding="UTF-8"?> <dict><key>ItemLists</key> <array><dict><key>id</key> <string>1</string> <key>name</key> <string>fruits</string> <key>category</key> <string>US Fruits</string> <key>categoryIcon</key> <string>http://www.somsite.com/categories/1.jpg</string> <key>country</key> <string>US</string> </dict> <dict><key>id</key> <string>2</string> <key>name</key> <string>Vegetable</string> <key>category</key> <string>Eu Vegetable</string> <key>categoryIcon</key> <string>http://www.somsite.com/categories/2.jpg</string> <key>country</key> <string>EU</string> </dict> </array> </dict>'; 
     xmlDoc = $.parseXML(xml), 
     $xml = $(xmlDoc); 

     $.each($xml.find('dict string'), function() { 
      console.info($(this).text()); 
     }); 
    } 
    </script> 

또는

내가 사업부 내부의 키 값을 배치 할 방법입니다 each에서이 작업을 수행 할 수도 있습니다. 성명 $xml.find('dict>array dict string')

+0

도움을 주셔서 감사합니다. 파이어 폭스에 대해 알고 있지만 크롬에서는 작동하지 않습니다. 어떻게 모든 키 이름 대신 개별 키 값을 얻을 수 있습니까? 예를 들어, 야채 이름 인 categoryIcon과 http://www.somsite.com/categories/2.jpg 키 이름에 대한 값을 원하십니까? 당신은 xml이 잘못 구성되어 있기 때문에 요소 안에 ''를 그룹화해야합니다. $. each ($ xml.find ('dict> categoryIcon> string'), function() { – user1788736

+0

} 이런 식으로 뭔가 :' ID두고, 다음 방금 필요한 경우 키와 문자열을 찾아 이런 식으로 뭔가 모든 데이터를 잡고 있습니다 1':. '$의 .each를 ($의 XML .find ('dict> 데이터'), function() { var keyText = $ (this) .find ('key'). 텍스트 () var stringText = $ (this) .find ('string'). 텍스트(); }); ' –

+0

잘 XML 내가 그것을 받아들이는 방식입니다. 나는 끊임없이 그 구조를 바꾸는 방법에 대한 통제가 없습니다. 그래서 당신은 각 dict에 대한 핵심 가치를 얻을 수있는 방법이 없다고 말합니까? 내 목표는 개별 키 이름과 그에 해당하는 값을 가져다가 html로 인쇄하는 것입니다. – user1788736