我想用jquery和jquerymobile在列表中显示来自XMl的数据。我在这里看到很多samy topcis,但它对我没有帮助。所以我会告诉你我已经完成的代码,有些人可以告诉我,我做错了。
这是我的Xml(名为emertimi.xml,位于root上):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row>
<Emri>Abide</Emri>
<Kuptimi>Adhuruese</Kuptimi>
<Gjinia>Femer</Gjinia>
</Row>
<Row>
<Emri>Abire</Emri>
<Kuptimi>Aromë e mirë lulesh.</Kuptimi>
<Gjinia>Femer</Gjinia>
</Row>
<Row>
<Emri>Adhra</Emri>
<Kuptimi>Margaritarë i pashpuar</Kuptimi>
<Gjinia>Femer</Gjinia>
</Row>
<Row>
<Emri>Adile</Emri>
<Kuptimi>E drejtë</Kuptimi>
<Gjinia>Femer</Gjinia>
</Row>
<Row>
<Emri>Afife</Emri>
<Kuptimi>E pastër; E thjeshtë; E lehtë</Kuptimi>
<Gjinia>Femer</Gjinia>
</Row>
</Root>
这是我的html和jquery
<html>
<!DOCTYPE html>
<head>
<title>..:Emra per femije:..</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="site.css">
<link href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,100italic,300italic,500,400italic,500italic,700italic,700,900,900italic' rel='stylesheet' type='text/css'>
<meta name="viewport" content="widdiv=device-widdiv, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<script type="text/javascript" src="main.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "emertimi.xml",
dataType: "xml",
success: parseXml
});
});
function parseXml(xml)
{
$("#menu_meshkujt").html("<ul id='content' data-role='listview' data-inset='true'></ul>");
$(xml).find("Row").each(function()
{
$("#content").append("<li><a href='"+$(this).find("Emri").text()+"'><h2>"+$(this).find("Kuptimi").text()+"</h2><p>"+$(this).find("Gjinia").text()+"</p></a></li>");
});
}
</script>
</head>
<body>
<div id="meshkujt_wrapper" data-role="page">
<div id="menu_meshkujt" >
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
我使用你的代码更改url从我的本地apache下载xml并在chrome上运行正常:
也许您的问题是服务器调用,而不是按预期返回XML。在ajax调用中添加错误函数定义以检查是否发生了错误:
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "emertimi.xml",
dataType: "xml",
success: parseXml,
error : function(jqXHR, textStatus, errorThrown){
alert(textStatus);
alert(errorThrown);
}
});
});
编辑:
我刚刚意识到您正在尝试从本地文件加载XML,但由于安全性要求,某些浏览器不允许这样做。如果您想尝试使用chrome,可以禁用chrome websecurity。为此,请尝试从命令行使用--disable-web-security属性启动chrome(在开始之前,确保没有运行chrome实例,如果不是disable-web-security不起作用):
"C:\...\Google\Chrome\Application\chrome.exe" --disable-web-security
我检查您的代码并禁用它在本地文件中运行的Chrome网络安全,还记得在您的ajax调用中指定url:"file:///your_path"
。
使用--disable-web-security属性正确启动chrome时,您必须看到黄色警告:
希望这有帮助,