Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript从HTML字符串中的标记获取内容_Javascript_Html_Rss_Titanium - Fatal编程技术网

使用Javascript从HTML字符串中的标记获取内容

使用Javascript从HTML字符串中的标记获取内容,javascript,html,rss,titanium,Javascript,Html,Rss,Titanium,我正在开发Tianium中的一个应用程序,它需要能够在Android和iOS上部署。应用程序通过RSS提要获取信息,我想在窗口中显示项目的内容。我试着把它放在一个网络视图中,但这不是我想要的,我想能够确定哪个元素去了哪里(图像、介绍和内容) 例如,这可能是RSS提要项目的内容: var content = "<p><img src=\"..." alt=\"dreigtweet\" width=\"280\" height=\"210\" class=\"alignright

我正在开发Tianium中的一个应用程序,它需要能够在Android和iOS上部署。应用程序通过RSS提要获取信息,我想在窗口中显示项目的内容。我试着把它放在一个
网络视图中
,但这不是我想要的,我想能够确定哪个元素去了哪里(图像、介绍和内容)

例如,这可能是RSS提要项目的内容:

var content = "<p><img src=\"..." alt=\"dreigtweet\" width=\"280\" height=\"210\" class=\"alignright size-full wp-image-19148\" \/><strong>Een 14-jarig meisje uit Rotterdam is aangehouden omdat ze in een dreigtweet stuurde naar luchtvaartmaatschappij American Airlines. Ze had zich zelf gemeld bij de politie.<\/strong><\/p> <p>Het meisje stuurde zondag onder de naam Sarah het berichtje naar de Amerikaanse luchtvaartmaatschappij, maar die nam de tweet uiterst serieus.<\/p> <p>De tiener schreef: &#8220;Hallo mijn naam is Ibrahim en ik kom uit Afghanistan. Ik maak deel uit van al-Qaeda en op 1 juni ga ik echt iets groots doen, dag.&#8221;<\/p> <p>Ze kreeg vrijwel direct antwoord van American Airlines: &#8220;Sarah, we nemen deze dreigementen zeer serieus. Jouw IP-adres en overige gegevens zullen aan de beveiliging en de FBI worden doorgegeven&#8221;.<\/p> <p>Sarah smeekte in een reeks tweets om vergiffenis, die door een steeds grotere twitterschare werd gevolgd. \u201CIk heb zo&#8217;n spijt, ik ben echt bang nu. Ik maakte een grapje, alsjeblieft doe het niet, ik ben maar een meisje\u201D, schreef de Rotterdamse in verschillende boodschappen.<\/p> <p>In de loop van zondagavond had het meisje er vele duizenden volgers bijgekregen. Inmiddels is haar Twitteraccount opgeschort.<\/p> <p>De Rotterdamse politie wil geen toelichting geven op de aanhouding van het meisje.<\/p> <p>Bron: Rijnmond.nl<\/p> <p><script type=\"text\/javascript\"><!-- google_ad_client = \"ca-pub-4354345434554545\"; \/* ijsselmondenieuws.nl *\/ google_ad_slot = \"434323442\"; google_ad_width = 468; google_ad_height = 60; \/\/--> <\/script><br \/> <script type=\"text\/javascript\" src=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\"> <\/script><\/p>";
然后将其加载到标签中,如下所示:

var introText = getIntro(postContent);

var intro = Ti.UI.createLabel({
width : '90%',
height : 'auto',
color : '#000',
backgroundColor : '#FFF',
top : '10dp',
textAlign : 'left',
font : {
    fontSize : '16dp',
    fontWeight : 'bold'
},
text : introText
});
所以这是一个障碍。下一步是通过以下
元素循环,并将文本放在新的
标签中的每个标签之间,或者甚至放在
表格行中,这样我就可以伪造段落。但是,我不知道如何在这里获取所有的
文本

标记,通过它们循环并将其内容添加到窗口中

非常感谢您的帮助

我将使用它来解析内容并访问段落中的文本:

var content=“…Text1

Text2

…”; //解析内容 content=$($.parseHTML(content,document,false)); //p标签 var p=内容过滤器(“p”); //对内容执行某些操作(例如,将的文本设置为所有段落的合并文本) $($h1”).text($.map(p,$.text).join(“+”));
请看一下这个函数

警告提示:切勿用于不受信任的来源!!!从文件中:

大多数接受HTML字符串的jQueryAPI将运行HTML中包含的脚本。除非keepScripts显式为true,否则jQuery.parseHTML不会在解析的HTML中运行脚本。但是,在大多数环境中,仍然可以间接执行脚本,例如通过属性。调用者应该意识到这一点,并通过清除或转义来自URL或Cookie等来源的任何不可信输入来防范


感谢您的投入和信息。然而,我使用的是Tianium,它不可能使用
DOM
,因此我认为使用JQuery在本例中不起作用。您知道纯javascript的解决方法吗?不幸的是,不知道。但也许你可以在Tianium的API中找到类似于
parseHTML
的东西。。。
var introText = getIntro(postContent);

var intro = Ti.UI.createLabel({
width : '90%',
height : 'auto',
color : '#000',
backgroundColor : '#FFF',
top : '10dp',
textAlign : 'left',
font : {
    fontSize : '16dp',
    fontWeight : 'bold'
},
text : introText
});
var content = "<div>...</div><p>Text1</p><p>Text2</p><div>...</div>";

// parse Content
content = $($.parseHTML(content, document, false));

// p-Tags
var p = content.filter("p");

// do something with content (for example set the text of <h1> to the joined text of all paragraphes)
$("h1").text($.map(p, $.text).join(" + "));