Silverlight中XmlReader解析XML的流程

在Silverlight 1.1中,C#只能用XmlReader这样一个非常轻量级的东西来解析XML,因此稍有不慎就会出现很多非常奇怪的错误,在这里对XML的解析做一个简单的流程介绍吧。

在对流式XML的解析中,XmlReader对XML节点进行一些区分,这些节点的类型包括:

public enum XmlNodeType
{
None = 0,
Element = 1,
Attribute = 2,
Text = 3,
CDATA = 4,
EntityReference = 5,
Entity = 6,
ProcessingInstruction = 7,
Comment = 8,
Document = 9,
DocumentType = 10,
DocumentFragment = 11,
Notation = 12,
Whitespace = 13,
SignificantWhitespace = 14,
EndElement = 15,
EndEntity = 16,
XmlDeclaration

Silverlight读XML是件痛苦的事情

本来以为Silverlight读XML那岂不是太方便了,没想到用Silverlight来读取XML中的节点原来是件非常令人痛苦的事情,尽管你用的是C#!因为Sivlerlight把WPF精简得太厉害,读XML只有XmlReader了……XmlReader是不支持XPath和XmlDocument的(这么好的东西都不要,莫非是因为Silverlight的体积问题?)

如果要用Silverlight读XML,建议看看这两篇文章:

1. Working with XML in Silverlight

2. howto使用http接收和发送简单的xml请求

有个建议,在读取每个节点的值之前最好先判断一下节点的类型(NodeType),否则很有可能出现一些不可解释的“灵异”现象………

天气预报小工具及RSS


这个是上个学期开学用Flash完成的,因为还有很多想法没有实现,用起来也十分不便,所以一直没有拿出来,现在趁提供天气预报RSS的机会顺便拿出来。目前可以提供全国范围内将近300个城市未来72小时的天气信息,数据来自新浪天气(与中央气象台同步)。这个还要新增的功能有:
1、定制城市。这个最重要,否则每次都要自己选,太不方便了。
2、使用缓存数据。这个也很重要,提高查询速度的关键。
3、快速搜索。这个也是为了方便。

下载地址:http://fdream.ys168.com,在Tool目录下,fwr.rar即是。

今弄了一下午,才搞定天气预报的RSS,暂时只能提供全国范围内34个省会城市72小时的天气预报信息。数据更新方式为固定时间段更新加不定期更新,在中午12点后至少更新一次,18点后至少更新一次,其他时间不定期更新。

blogWeather格式的RSS:
http://fdream.net/service/weather/cn.xml…

写了一个ATOM FEED(附ATOM规范)

做课程设计的时候发现网上的资源挺丰富的,怎么我找个ATOM的规范都找不到(不能上国外网就是这么郁闷)!不得已再借兄弟的宽带用一会儿,找到了英文原版的ATOM规范。结合这个规范和网上现有的ATOM FEED自己也给blog写了一个ATOM FEED。

在网上好不容易找到几篇有提到ATOM的文章都说ATOM比RSS复杂,不过如果你不熟悉RSS可能会觉得两者都比较复杂,不过ATOM确实比RSS灵活一点。其他标签都好说,郁闷的是两者的时间格式不一样,RSS要求时间是RFC 822格式的:

Sat, 07 Sep 2002 00:00:01 GMT

ATOM的时间格式很奇怪(采用RFC3339标准),一般是这样的:

2005-07-10T12:29:29Z

中间必须要夹杂一个很奇怪的大写T字母(应该是很奇怪的夹杂着一个大写T字母),根据规范中的说明是用来分隔日期(date)和时间(time)的,而末尾的大写字母Z是用来表示时区(Time…

ASP处理XML文档

这个学期前期写的一段代码,本来是想自己做一个XNA(XML聚合)的,由于种种原因,做了一部分就终止了,这是其中处理XML文档的一部分。

‘xml加载,其中 linkurl 为表示 XML 文档的 URL 的变量
Set http=Server.CreateObject(“Microsoft.XMLHTTP”)
http.Open “GET”,linkurl,False
http.send

Set xmlDoc=Server.CreateObject(“Microsoft.XMLDOM”)
xmlDoc.Async=False
xmlDoc.ValidateOnParse=False
xmlDoc.Load(http.ResponseXML)

‘xml结点设置

set root = xmlDoc.documentElement

‘根据结点选取数据,兼容XML

Office12使用XML格式存储文件

简直是不可思议,微软竟然使用XML格式存储文件,这不就等于公开 OFFICE 的文件结构吗?前几天还看到金山的 WPS Office 2005 发布的好消息,全面模仿 Office ,并且全面兼容 Office 文件格式,可以相互读取,偶还为其狠很的高兴了几天,看来 WPS 的“全面兼容”的概念是彻底的死了!强者就是强者,随便一出手便能使对手受到致命伤害!

WPS 历经风风雨雨17年,走到今天,雷军仿佛是看到希望,全面兼容 Office,免费提供下载,即使是到软件店购买,也只需象征性的 20 元,目的只有一个,夺回中国的 Office 阵地!金山不惜重金,花费三年时间,WPS 全面重写。好不容易来了个全面模仿,微软倒好,等你的东西出来了,却完全公开了 Office 的文件技术细节!打击是如此的深重!

WPS,你还能走多远?砺剑三年,只不过为了向微软要回自己的领地,经此一击,希望你能更加坚强!也希望金山公司董事长 求伯君 的豪情不减:“WPS…

Flash留言本雏形!

因为网费欠缺,断网了两天,又由于课比较多,两天没去交网费,在寝室里上不了网,就只好让 MM(Macromedia) 陪我玩了,在这段时间内,用”三剑客”做了一个 Flash留言本的雏形!

数据存储使用 Access, 脚本使用的是 ASP,动态生成 XML,然后由 Flash 来解析 XML,不过程序现在还有很多BUG, 只有慢慢修改了!

在这个flash里用的比较重要的命令是:
myXML.load();
loadVariablesNum();
tellTarget();
mc.attachMovie();
loadmovie();
mc.removeMovie();
mc.onRollOver();
mc.onRollOut();
mc.onRelease();

基本界面如下:

Flash留言本测试地址:
http://www.afdrem.com/blog/flashgbook/…

Flash&XML第一个练习成功

从偶的blog的rss读取数据,顺便练习了一下Flist组件,一直不太喜欢用组件的,呵呵~

rss代码(由asp生成)地址:blogrss2.asp
fla代码:
myList.setSize(350, 240);
myList.rowHeight = 24;
var myXML = new XML();
myXML.load(“blogrss2.asp”);
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
if (success) {
for (i=7; i<17; i++) {
myList.addItem({label:myXML.childNodes[0].childNodes[0].childNodes[i].childNodes[1].firstChild.nodeValue});
}
}
};
listenerObject = new Object();
listenerObject.change…

开始学XML和Flash的结合

ASP和Flash的结合算是会了一点,但总是发现数据处理起来有点麻烦,看到很多用flash做的留言版都用了
XML,决定尝试一下!

看的第一篇入门教程(感觉不错,转载于此,以作纪念!):

有一点想说明的:在flash里面输入这一行:
system.useCodePage=true;
就可以正常显示中文了,而不会出现乱码!不过这样不会兼容所有的浏览器……

FLASH调用XML数据简明教程

作者: imagebear

一、建立XML对象:

var myXML = new XML();

二、引用XML文件:

myXML.load(“data.xml”);

三、忽略空格:

myXML.ignoreWhite = true;//默认的为false

四、处理XML对象的函数:

myXML.onLoad = function(success) { statements;}

五、data.XML文件的内容

xiaoshandong