-1

好的,我正在尝试将通过 curl 脚本导入的 xml 解析到 html 页面中,我的 curl 工作正常,它返回我的 xml,如下所示:

<item> 
<title> TITLE ONE</title>
<description> desc one</description>
<guid>http://example.com</guid>
</item>
<item> 
<title> TITLE two</title>
<description> desc two</description>
<guid>http://exampletwo.com</guid>
</item> 

在页面 xml 出现后,我试图将其转换为 html 并将其附加到另一个 div,如下所示:

//Convert onpage feed to html//
var title= jQuery('#results item > title');
var titletext = jQuery("#results item > title").text()

var description = jQuery('#results item > description');
var descriptiontext = jQuery("#results item > description").text()

var guid = jQuery('#results item > salaryrange guid');
var guidtext = jQuery("#results item > salaryrange guid").text()

var rss = jQuery('#results item');
var rsstext = jQuery("#results item").text()

jQuery(title, this).replaceWith('<h1>'+titletext+': </h1/>')
jQuery(description, this).replaceWith('<p class="feed_desc">'+descriptiontext+': </p>')

// move to new div stripping unwanted xml//
var title= jQuery('#results_two .rssfeed > title');
var titletext = jQuery("#results_two .rssfeed > title").text()

var description = jQuery('#results_two .rssfeed > description');
var descriptiontext = jQuery("#results_two .rssfeed > description").text()

var guid = jQuery('#results_two .rssfeed > salaryrange guid');
var guidtext = jQuery("#results_two .rssfeed > salaryrange guid").text()

var rss = jQuery('#results item');
var rsstext = jQuery("#results item").html()

title.replaceWith('<a href='+guidtext+' class="feedh1">'+titletext+': </a><br/>')



description.replaceWith('<p class="feed_desc">'+descriptiontext+': </p>')

rss.replaceWith('<div class="rssfeed">'+rsstext+': </div>')

jQuery("#results_two").append('<div class="rssfeed">'+rsstext+': </div>');
//empty old div//
jQuery("#results").empty();
//remove left over xml//
 jQuery('.rssfeed > location, .rssfeed > salaryrange').remove();

 //strip empty <p> tags //
 jQuery('p').each(function() {
    var $this = jQuery(this);
    if($this.html().replace(/\s|&nbsp;/g, '').length == 0)
        $this.remove();
});

只要提要中只有一个项目,当项目增加超过一个时,标题只会应用于提要中的第一个或最后一个项目,这很有效。我如何一次只将附加应用到一个项目?这是一个仅使用标题的简化版本:

   var title= jQuery('#results item > title');
    var titletext = jQuery("#results item > title").text()

    title.replaceWith('<h1>'+titletext+': </h1>')

克里斯

4

1 回答 1

1

你可以这样做...... http://jsfiddle.net/yMLUp/

$("item").each( function() {
    $title = $(this).children("title");
    $title.replaceWith("<h1>"+$title.text()+"</h1>");
    //change other elements in the same manner
});

您可以将其更改为您的上下文,#results item......您可以replaceWith在其中然后将其附加到任何您想要的位置,或者只是在解析时将新内容附加到新元素。

这是一个解析所有元素的 jsfiddle:http: //jsfiddle.net/yMLUp/1/

于 2013-05-23T13:38:18.297 回答