1

我在用 jquery 解析 xml 时遇到了一些问题。我自己做了一些研究,但我没有找到我的问题的答案。问题是 parseXml 函数在具有 id 结果的 div 中没有显示任何结果,并且 div 信息没有显示“成功”。当我将 qanda.xml 更改为不存在的文件名(如 qandaa.xml)时,信息 div 显示“找不到 XML 文件”所以我认为文件已加载但 parseXml 函数有问题。

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>
4

1 回答 1

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[]
于 2013-04-19T15:25:46.287 回答