Разобрать XML через jquery в listview jquerymobile

Я хочу отображать данные из XMl в списке с помощью jquery и jquerymobile. Я видел здесь много самых топци, но мне это не помогло. Итак, я покажу вам код, который я сделал, и, может быть, кто-нибудь скажет мне, где я сделал неправильно.

Вот мой Xml (называемый emertimi.xml и расположенный в корне):

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

person Hariss    schedule 30.05.2014    source источник
comment
Может ли кто-нибудь помочь мне, пожалуйста   -  person Hariss    schedule 30.05.2014


Ответы (1)


Я использую ваш код, изменяя URL-адрес, чтобы загрузить xml из моего локального apache и нормально работает в chrome:

исполнение 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. Для этого попробуйте запустить chrome со свойством --disable-web-security из командной строки (перед запуском убедитесь, что не запущен ни один экземпляр chrome, если не работает disabled-web-security):

"C:\...\Google\Chrome\Application\chrome.exe" --disable-web-security

Я проверяю ваш код и отключаю веб-безопасность Chrome, он работает из локального файла, также не забудьте указать url:"file:///your_path" в вызове ajax.

Когда вы правильно запускаете chrome со свойством --disable-web-security, вы должны увидеть желтое предупреждение:

chrome с отключенной веб-безопасностью

Надеюсь это поможет,

person albciff    schedule 30.05.2014
comment
Спасибо за ответ, теперь я попробовал старый код в мозилле, и он работает, но в хроме еще нет. Пишет erorr:: вот и все - person Hariss; 30.05.2014
comment
Я обновляю свой ответ, я не понимаю, что вы используете локальный файл непосредственно в своем вызове ajax. Надеюсь, на этот раз ответ правильный :). - person albciff; 30.05.2014
comment
Как отключить-защиту понятия не имею, пробую разными способами, но не получается :( также как указать URL-адрес файла ///emertimi.xml? ps Извините за мои вопросы, но я действительно не знаю, как это сделать Это. - person Hariss; 30.05.2014
comment
Я пробовал онлайн, и это работает идеально. Я сделаю это для Android (надеюсь, я смогу это сделать), поэтому, когда я запущу это, вы знаете, будет ли оно работать как приложение для Android, потому что я не использую файл в Интернете? - person Hariss; 30.05.2014
comment
Вы хотите создать приложение для Android с веб-просмотром, например, и загрузить локальный xml из html? Вы видели это stackoverflow.com/questions/20425481/< /а> ? - person albciff; 30.05.2014
comment
Я еще не пробовал, как это сделать или как я могу сделать это в приложении для Android, но до тех пор я закончил некоторые части, которые хотел закончить на этой неделе. Большое спасибо еще раз. - person Hariss; 30.05.2014