javascript - 从 XML 文件中分离出一个结果

标签 javascript jquery xml ajax cordova

我正在 Phonegap 中使用 HTML(5)、CSS3 和 Javscript(和 friend )编写一个应用程序。但我有一个问题:解析 XML 效果很好,我在屏幕上获取了 XML 文件中的所有项目,并且可以通过 CSS 设置它们的样式。

每个 XML 项目都有一个标题、图像、预告片和“lees-verder”(“阅读更多”,其中大部分只包含嵌入视频)。

这是我用来查看每个项目的标题、图像和预告片的脚本:

<script>
    $(document).ready(function(){
        $.ajax({
            type: "GET",
            url: "webzap.xml",
            dataType: "xml",
            success: function(xml) {
                $(xml).find('item').each(function(){
                    var urllist = $(this).find('link').text();
                    var node = urllist.substring(urllist.lastIndexOf('-')+1);
                    var id = node;
                    var total = $(this).find('id').text();
                    var title = $(this).find('title').text();
                    var url = $(this).find('link').text();
                    var brief = $(this).find('teaser').text();
                    var long = $(this).find('lees-verder').text();
                    var pubDate = $(this).find('pubDate').text();
                    var img = $(this).find('image').text(); 
                    $('<a href="http://www.flabber.nl/node/'+id+'"><div class="items" id="link_'+id+'"></div></a>').appendTo('.class2');
                    $('<h2 class="title_list" style="margin-top: 40px;"></h2>').html(title).appendTo('#link_'+id);
                    $('<h6 class="pubDate"></h6>').html('Dit is node nummer '+id).appendTo('#link_'+id);                        
                    $('<div class="introtekst"></div>').html(brief).appendTo('#link_'+id);
                    $('<div class="introtekst"></div>').html(total).appendTo('#link_'+id);                      
                    $('<div class="screenshot"></div>').html('<img src="'+img+'" height="120"/><br />').appendTo('#link_'+id);
                    $('<h2 class="title"></h2>').html(title).appendTo('#link_'+id);
                    /*$('<div class="content"></div>').html(long).appendTo('#link_'+id); */
                    /*$('<div class="introtekst" id="link_'+id+'"></div>').html('<a href="'+url+'">Open volledige website</a>').appendTo('#link_'+id);*/
                });
            }

        });
    });
 </script>

我现在想要的是,我点击一个项目,然后该项目会在新页面中打开并显示标题、图像、预告片和“lees-verder”。另一种可能性是,当用户单击某个项目(他/她单击的项目除外)时,所有 XML 内容都会消失。 “lees-verder”也应该被加载,因为当我简单地用“display:none;”隐藏它时在CSS中,它无论如何都会加载它们并大大减慢应用程序的速度。我当然一直在网上搜索,但找不到我需要的东西。

这是我的 XML 文件的一部分,如果这对您来说更容易的话。 :)

<item>
<title>Wat is een schrikkeljaar?</title>
<link>
http://www.flabber.nl/linkdump/video/wat-is-een-schrikkeljaar-10653
</link>
<teaser>
<![CDATA[
Het is 29 februari, tijd om uit te leggen wat een schrikkeljaar is.
]]>
</teaser>
<lees-verder>
<![CDATA[
<p><iframe width="720" height="396" src="http://www.youtube.com/embed/xX96xng7sAE?rel=0" frameborder="0" allowfullscreen></iframe></p> <p>Check ook <a href="http://www.youtube.com/watch?v=53glKEPzElA">de video van MinutePhysics</a>.</p>
]]>
</lees-verder>
<image>
http://images.flabber.net/files/linkdump/schrikkeljaarwatishet.jpg
</image>
<pubDate>Wed, 29 Feb 2012 11:19:00 +0100</pubDate>
</item>

提前致谢!如果您有任何疑问或者我不够清楚,请提问,我会尽力澄清!

重要提示:我无法使用 PHP,因为 Phonegap 不支持 PHP。接受的语言:HTML(5)、CSS(3) 和 Javascript(包括 Jquery、Ajax 等)

最佳答案

我建议存储原始 xml,然后对其进行处理。 这样,您可以执行以下操作: 当用户点击某个元素时,您将调用 showElement(id) 等函数,然后从存储的 xml 中检索详细信息(将其视为主列表或数据库)。

这是大多数网络应用程序的制作方式。

关于javascript - 从 XML 文件中分离出一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9670290/

相关文章:

javascript - CSS/Jquery OverFlow 隐藏不工作

javascript - AppGyver Steroids 超音速 View

javascript - 在 ajax 请求之前对数据应用 Angular ng-repeat orderBy 和过滤器

jquery - AngularJS 指令 - 避免 jQuery 式的架构

javascript - 检查互联网连接并更改内容 jquery/Javascript

c# - 解码 XML 时 base64 字符串中的无效字符

Javascript - 将语言环境日期时间解析为我们的日期时间格式

javascript - Bluebird中的捕获错误类型不起作用

c# - C# 中的 XML 注释有什么用?

iphone - 如何将 xml 结果传递给核心数据对象