<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import flash.utils.Dictionary;
import mx.events.TreeEvent;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private var dictionary:Dictionary = new Dictionary();
private function itemOpenHandler(event:TreeEvent):void
{
var item:Object = event.item;
if (item && item.@loadFlag == "false")
{
service.url = item.@url;
var token:AsyncToken = service.send();
dictionary[token] = item;
}
}
private function resultHandler(event:ResultEvent):void
{
var channel:XML = XML(dictionary[event.token]);
var result:XML = XML(event.result);
var items:XMLList = result..item;
var item:XML = null;
var node:XML = null;
channel.@loadFlag = "true";
delete channel.*;
for each (item in items)
{
node = <node/>;
node.@label = item.title;
channel.appendChild(node);
}
}
private function faultHandler(event:FaultEvent):void
{
var channel:XML = XML(dictionary[event.token]);
channel.@loadFlag = "true";
delete channel.*;
}
private function getLabel(item:Object):String
{
var node:XML = XML(item);
if (node.name().toString() == "item")
return node.title;
else
return node.@label;
}
]]>
</mx:Script>
<mx:XML id="blog">
<root label="新浪博客">
<channel label="文化" url="http://rss.sina.com.cn/blog/index/cul.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="八卦" url="http://rss.sina.com.cn/blog/index/ent.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="情感" url="http://rss.sina.com.cn/blog/index/feel.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="观点" url="http://rss.sina.com.cn/blog/index/other.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="财经" url="http://rss.sina.com.cn/blog/index/stocks.xml" loadFlag="false">
<node label="加载中..." />
</channel>
</root>
</mx:XML>
<mx:HTTPService id="service" concurrency="multiple" resultFormat="xml"
result="resultHandler(event)" fault="faultHandler(event)" />
<mx:Tree id="tree" width="400" height="500"
dataProvider="{blog}" labelField="@label"
itemOpen="itemOpenHandler(event)" />
</mx:Application>
分享到:
相关推荐
6. **资源管理**:如果RSS读取过程中涉及到图片或其他资源,需要正确管理和加载这些资源。例如,可以使用`Image`类加载图片,或者将资源嵌入到程序集,以便在运行时直接使用。 7. **性能优化**:考虑到网络延迟,...
在ASP中读取XML文件是一项常见的任务,特别是在处理数据交换或存储结构化信息时。XML(Extensible Markup Language)是一种轻量级的数据表示格式,易于人阅读和机器解析。本文将详细介绍如何使用ASP来读取XML文件,...
RSS是一种XML格式,用于发布新闻、博客和其他定期更新的网络内容。RSS阅读器可以帮助用户订阅并集中管理这些内容源,避免在各个网站之间来回浏览。 RSS阅读器的核心知识点包括: 1. **Java基础**:项目基于Java,...
本示例将展示如何使用JavaScript结合AJAX技术来读取博客的RSS源,并将结果显示在网页上。这个过程涉及到了以下几个知识点: 1. 创建XMLHttpRequest对象 在AJAX通信中,核心是创建XMLHttpRequest对象,该对象用于在...
在Flash中处理RSS,通常会使用XML类来解析和读取RSS源中的数据。ActionScript 3(AS3)是Flash开发中常用的编程语言,它提供了一系列XML处理方法,如`XML()`构造函数、`load()`方法加载XML文件,以及`child()`、`...
例如,使用`SharedPreferences`或SQLite数据库存储最近加载的RSS feed,当网络不可用时,可以从本地缓存读取数据。 10. **错误处理** 考虑到网络连接问题和服务器响应错误,应包含适当的错误处理和提示,如显示...
在Android平台上开发一个Rss阅读器,主要是为了方便用户订阅并获取RSS(Really Simple Syndication)源中的新闻、博客文章或者其他信息。RSS是一种基于XML的数据格式,它允许网站发布更新内容,而用户可以通过RSS...
示例代码中展示了如何编写`loadXML`函数来异步加载XML文件。这个函数首先判断浏览器是否支持XML解析,如果支持则使用内置的XML DOM对象,如果不支持则提供一个错误提示。 具体来说,如果浏览器支持`ActiveXObject`...
易语言提供了XML解析模块,如`XML读取文件`、`XML获取节点文本`等命令,用于从RSS feed中提取标题、链接、描述等信息。 2. **网络通信**:浏览RSS feed需要与服务器进行交互,这涉及到了HTTP协议和TCP/IP网络编程。...
在IT领域,尤其是在Web开发中,我们经常需要处理各种数据源,例如RSS(Really Simple Syndication)馈送,以获取实时或更新的信息。标题提到的"get-stack-rss"是一个Node.js脚本,用于从堆栈相关的网站抓取带有特定...
DOM允许开发者加载整个XML文档到内存中,然后通过节点遍历、修改或创建新的XML结构。在新闻阅读器中,这可能用于读取RSS或ATOM文件,提取文章标题、链接、发布日期等信息。 【事件驱动编程】 C#中的事件驱动编程...
对于Atom和RSS格式,它们都是XML的子集,用于发布和订阅新闻、博客等在线内容。Atom是一种更现代且标准化的格式,强调内容的持久性和编辑历史。RSS(Really Simple Syndication)则相对简单,主要用于内容聚合。在...
- **树形菜单加载父/子节点**:可以实现懒加载机制,只在需要时才加载子节点。 - **创建基础树形网格**:结合了树形结构和数据网格的功能。 - **创建复杂树形网格**:在树形网格中可以实现更高级的功能。 - **树...
在处理这个XML时,DOM可以用于创建、修改类别节点,SimpleXML可以方便地遍历和读取图书信息,而XPath可以快速找到特定的类别或书籍。 总之,PHP提供了强大的XML处理能力,根据具体应用场景,可以选择合适的XML处理...
- **读取节点内容**:`nodeValue`。 - **读取元素内容**:`textContent`。 #### XMLDOM改变节点值 - **修改节点内容**:`nodeValue`。 - **修改元素内容**:`innerHTML`。 #### XMLDOM删除节点 - **`removeChild()...
Web2.0的出现改变了互联网应用的格局,它强调用户参与和交互,如博客、RSS、Wiki、SNS等。Ajax是Web2.0的重要技术之一,它允许在不打断用户交互的情况下与服务器交换数据并局部更新页面。这显著提升了网页的响应...
1. **使用XMLHttpRequest读取RSS Feed** - **任务**: 使用XMLHttpRequest读取ajaxcn.org的RSS Feed(http://ajaxcn.org/exec/rss),并用HTML的列表标签(UL/OL/LI)列出获取的的Blog条目。 - **解析**: 这个任务...
- DOM(Document Object Model)解析器将整个XML文档加载到内存中,形成一棵节点树,允许通过节点遍历和操作。 - SAX(Simple API for XML)解析器采用事件驱动的方式,只读取文档的一部分,适用于处理大型XML文件。...
8. **XMLHttpRequest对象**:在JavaScript中,XMLHttpRequest对象用于在不刷新整个页面的情况下,向服务器发送异步请求并接收响应,是AJAX(Asynchronous JavaScript and XML)技术的核心。 9. **XML的应用场景**:...
- 异步加载资源。 - 使用Web Workers处理复杂计算。 7. WebP格式: - 一种提供有损压缩和无损压缩的图像格式,旨在加快网络上的图像传输速度。 ### CSS篇知识点: 1. BFC(Block Formatting Context,块格式化...