2013-04-19 3 views
1

У меня есть некоторые проблемы с разбором xml с jquery. Я сделал некоторые исследования самостоятельно, но я не нашел ответа на свои проблемы. Проблема в том, что функция parseXml не показывает результат в div с результатом id, а информация div не показывает «успех». Когда я меняю qanda.xml на не существующее имя файла, например qandaa.xml, div div показывает «XML-файл не найден». Поэтому я думаю, что файл загружен, но что-то не так с функцией parseXml.Проблемы с jquery с разбором xml

XML-(qanda.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<QandA> 
    <question>how much?</question> 
    <answer>100</answer> 
</QandA>  
<QandA> 
    <question>how much?</question> 
    <answer>110</answer> 
</QandA>  
<QandA> 
    <question>how much?</question> 
    <answer>120</answer> 
</QandA>  
<QandA> 
    <question>how much?</question> 
    <answer>130</answer> 
</QandA>  
<QandA> 
    <question>how much?</question> 
    <answer>140</answer> 
</QandA> 

HTML-страница

<!DOCTYPE HTML> 
<html> 
<head> 
<LINK REL=StyleSheet HREF="layout.css" TYPE="text/css" MEDIA=screen> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 

    var information = $("#info"); 
    var result = $("#result"); 

$.ajax({ 
    type: "GET", 
    url: "qanda.xml", 
    datatype: "xml", 
    success: parseXml, 
    error: function(xhr, status, error) { 
     if(xhr.status==404) { 
      information.text("XML file not found"); 
     } 
    } 
}); 

function parseXml(xml) { 
    $(xml).find('QandA').each(function(){ 
     result.append($(this).find('question').text()); 
     result.append($(this).find('answer').text()); 
    }); 
    information.text("Success"); 
} 
}); 
</script> 
</head> 
<body> 

<div id="info"></div> 
<div id="result"></div> 

</body> 
</html> 

ответ

1

Думаю, ваш XML нужен корневой элемент.

>>> str = '<?xml version="1.0" encoding="UTF-8"?><root><a></a></root>' 
"<?xml version="1.0" encoding="UTF-8"?><root><a></a></root>" 
>>> $(str).find("a") 
Object[a] 

и

>>> str = '<?xml version="1.0" encoding="UTF-8"?><a></a>' 
"<?xml version="1.0" encoding="UTF-8"?><a></a>" 
>>> $(str).find("a") 
Object[] 
+0

Thanx. просто добавили и в документ xml, и он работает. – Zeebats

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