Silverlight读取XML数据.docx

上传人:b****4 文档编号:11862075 上传时间:2023-04-06 格式:DOCX 页数:10 大小:460KB
下载 相关 举报
Silverlight读取XML数据.docx_第1页
第1页 / 共10页
Silverlight读取XML数据.docx_第2页
第2页 / 共10页
Silverlight读取XML数据.docx_第3页
第3页 / 共10页
Silverlight读取XML数据.docx_第4页
第4页 / 共10页
Silverlight读取XML数据.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Silverlight读取XML数据.docx

《Silverlight读取XML数据.docx》由会员分享,可在线阅读,更多相关《Silverlight读取XML数据.docx(10页珍藏版)》请在冰豆网上搜索。

Silverlight读取XML数据.docx

Silverlight读取XML数据



∙网站地图

∙设为首页

∙加入收藏

∙  首页  

Home

∙文摘空间

Documents

∙C#视角

C#View

∙.Net视角

.NetView

∙C#问询

C#Enquiry

∙.Net问询

.NetEnquiry

∙用户中心

UserCenter

∙关于我们

AboutUs



Tag:

开源,源码,控件,控件开发,皮肤,Skin,MVC,WCF,Remoting,AJAX,JQuery,Flex,Silverlight,SQLServer,设计模式,框架,正则,Web服务,数据库,PetShop,WordPress,Silverlight读取*.XML数据



 

热门搜索:

控件美化winform控件开发源码下载socket控件框架开源源码窗体换肤skin

-

-

您的位置:

>> 首页 >> .Net博文 >> Silverlight读取*.XML数据

Silverlight读取*.XML数据

2009-11-13 来自:

CSDN博客 字体大小:

【大 中 小】

∙摘要:

本文介绍Silverlight读取*.XML数据

-

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Net;

usingSystem.Windows;

usingSystem.Windows.Controls;

usingSystem.Windows.Documents;

usingSystem.Windows.Input;

usingSystem.Windows.Media;

usingSystem.Windows.Media.Animation;

usingSystem.Windows.Shapes;

usingSystem.Xml;

usingSystem.Xml.Linq;

usingSystem.IO;

usingSystem.Text;

namespaceSLshaw

{

   publicpartialclassMainPage:

UserControl

   {

       publicMainPage()

       {

           InitializeComponent();

       }

       privatevoidbtnXML_Click(objectsender,RoutedEventArgse)

       {

           stringXpath=@"shadowinswf.xml";

           StringBuildersb=newStringBuilder();

           using(XmlReaderreader=XmlReader.Create(Xpath))

           {

               while(reader.Read())

               {

                   if(reader.IsStartElement()&&"window"==reader.LocalName.ToLower())

                   {

                       sb.Append("state="+reader.GetAttribute("state".ToLower())+"\r\n");

                       using(XmlReaderitemreader=reader.ReadSubtree())

                       {

                           while(itemreader.Read())

                           {

                               if(itemreader.IsStartElement())

                               {

                                   if("title"==itemreader.LocalName.ToLower())

                                   {

                                       sb.Append("title:

"+itemreader.ReadElementContentAsString()+"\r\n");

                                   }

                                   elseif("os"==itemreader.LocalName.ToLower())

                                   {

                                       sb.Append("os:

"+itemreader.ReadElementContentAsString()+"\r\n");

                                   }

                                   elseif("description"==itemreader.LocalName.ToLower())

                                   {

                                       sb.Append("description:

"+itemreader.ReadElementContentAsString()+"\r\n");

                                   }

                                   elseif("img"==itemreader.LocalName.ToLower())

                                   {

                                       sb.Append("img:

"+itemreader.ReadElementContentAsString()+"\r\n");

                                   }

                                   elseif("uuid"==itemreader.LocalName.ToLower())

                                   {

                                       sb.Append("uuid:

"+itemreader.ReadElementContentAsString());

                                   }

                               }

                           }

                       }

                       this.txtXML.Text=sb.ToString();

                   }

               }

           }

       }    

   }

}

参考文章:

本章中的QuickStart示例演示如何使用Silverlight中的.NETFramework子集部分来得到远程的XML内容,使用XmlReader来读入内容,以及使用StringBuilder和XmlWriter来将内容输出到XAML中.

运行查看想要在基于Silverlight的应用程序中做到以上的功能,你需要准备以下步骤:

使用BrowserHttpWebRequest来得到远程XML源.

使用XmlReader来读取XML文件.

使用XmlWriter来将XML内容写入到一个StringBuilder对象中.

输出XAML内容到页中.

要求(availablefromtheSilverlightdownloadsite):

MicrosoftSilverlight1.1Alpha.

MicrosoftVisualStudioCodeName"Orcas"Beta1.

MicrosoftSilverlightToolsAlphaforVisualStudioCodeName"Orcas"Beta1.

ASilverlightproject.Forinstructions,seeHowto:

CreateaSilverlightProject.

使用BrowserHttpWebRequest来得到远程XML内容

创建一个BrowserHttpWebRequest实例,并将你想要调用的资源的UniformResourceIdentifier(URI)传入.你可以请求一个在同一个服务器上的文件.例如,你可以得到示例中的rssfeed.xml文件(单击查看源文件按钮)然后复制到你project中的source文件夹中.

CS

HttpWebRequestrequest=newBrowserHttpWebRequest(newUri(url));

VB

DimrequestAsNewBrowserHttpWebRequest(NewUri(url))

注意

如果想得到不同域中的XMLdocument,请使用Webservice.想了解如何使用Webservice,查看ExposingWebServicestoClientScriptinASP.NETAJAX.

调用GetResponse方法来得到HttpWebResponse对象,它包含了你请求资源的响应.

CS

HttpWebResponseresponse=request.GetResponse();

VB

Dimresponse=request.GetResponse()

 

使用HttpWebResponse.GetResponseStream方法以流的方式得到服务器对你请求的响应.

CS

Streamcontent=response.GetResponseStream();

VB

Dimcontent=response.GetResponseStream()

在你得到response对象后,请以Close()方法来关闭这个资源请求.

CS

response.Close();

VB

response.Close()

使用XMLReader来读取XML

调用Create()方法然后给它传入一个StreamReader类的实例,这样你就创建了一个XmlReader对象.

CS

using(XmlReaderreader=XmlReader.Create(newStreamReader(content)))

VB

UsingreaderAsXmlReader=XmlReader.Create(NewStreamReader(content))

开始读取这个包含返回内容的stream.

CS

while(reader.Read())

VB

While(reader.Read())

寻找名称为"item"的元素.它表明RSSfeeditem就在当前节点中.

CS

if((reader.IsStartElement())&&("item"==reader.LocalName))

VB

If((reader.IsStartElement())And("item"=reader.LocalName))Then

创建一个XmlReader类型的itemReader对象,使用XmlReader的ReadSubTree()方法来访问所有的"item"元素.itemReader即能得到所有当前的RSSitem数据.

CS

using(XmlReaderitemReader=reader.ReadSubtree())

VB

UsingitemReaderAsXmlReader=reader.ReadSubtree()

调用itemReader对象的Read()方法在RSSfeed中来搜索"title"和"link"元素.

while(itemReader.Read())

{

if(itemReader.IsStartElement())

{

if("title"==itemReader.LocalName)

{

}

elseif("link"==itemReader.LocalName)

{

}

}

}

WhileitemReader.Read()

If(itemReader.IsStartElement())Then

If("title"=itemReader.LocalName)Then

ElseIf("link"=itemReader.LocalName)Then

EndIf

EndIf

EndWhile你不需要调用reader和itemReader的Close方法,因为using申明定义的对象将在括号结束时自动disposed.

使用XMLWriter来写XML成为一个StringBuilderobject

创建一个XmlWriter并传入一个它将要写入内容并用来代表XAML内容的StringBuilder对象.

CS

StringBuilderxamlString=newStringBuilder();

using(XmlWriterwriter=XmlWriter.Create(xamlString))

VB

DimxamlStringAsNewStringBuilder()

UsingwriterAsXmlWriter=XmlWriter.Create(xamlString)

注意

你可以使用XamlWriter来创建XAML控件,或者你有了XmlWriter对象,你可以改变它为XamlWriter.

写入XAML元素.在writer结束时,你可以将这些元素控件添加到XAML页中.下面的示例添加了Canvas元素.它同时还添加了TextBlock子元素到Canvas下.TextBlock元素必须含有Canvas.Top参数来定位它在Canvas对象的什么位置上.你同样还要设置它显示出来的值.

//WriteCanvaselement.

writer.WriteStartElement("Canvas");

//WritechildelementsforCanvas.

writer.WriteStartElement("TextBlock");

writer.WriteAttributeString("Canvas.Top",0);

writer.WriteAttributeString("Text",

"Title:

"+itemReader.ReadElementContentAsString());

//EndTextBlockelement.

writer.WriteEndElement();

//EndCanvaselement.

writer.WriteEndElement();

'WriteCanvaselement.

writer.WriteStartElement("Canvas")

'WritechildelementsforCanvas.

writer.WriteStartElement("TextBlock")

writer.WriteAttributeString("Canvas.Top",0)

writer.WriteAttributeString("Text",_

"Title:

"&itemReader.ReadElementContentAsString())

'EndTextBlockelement.

writer.WriteEndElement()

'EndCanvaselement.

writer.WriteEndElement()

调用Flush()方法来flushxamlString.缓冲的内容

CS

writer.Flush();

VB

writer.Flush()

你不需要调用writer的Close方法,因为using申明定义的对象将在括号结束时自动disposed.

将内容写入XAML页

从string中来创建一个XAMLcontrols.

CS

System.Windows.DependencyObjectcontrols=

XamlReader.Load(xamlString.ToString());

VB

DimcontrolsAsSystem.Windows.DependencyObject=_

XamlReader.Load(xamlString.ToString())

添加controls到根Canvas的子对象集中.

CS

this.Children.Add(controlsasVisual);

VB

Me.Children.Add(controls)

 

作者:

张俊飞

[返回顶部]

上一篇:

Silverlight数据内容滚动的问题      下一篇:

Pythonfor.net脚本调用dotnet框架

相关文章:

打印收藏文章关闭

该文章已有0条评论我要发表评论



 热门文章



∙·C#轻松实现对窗体(Form..

∙·C#WinForm控件美化扩展系..

∙·C#实现完整功能的截图控..

∙·C#WinForm控件美化扩展系..

∙·C#UDP(Socket)异步传输..

∙·C#使用GDI+绘制漂亮的Too..

∙·C#实现完整功能的截图控..

∙·C#WinForm控件美化扩展系..

∙·C#自定义控件开发<一&..

∙·C#实现TrackBar控件美化..

 推荐文章



∙·CSDN论坛学习工具(CSDNS..

∙·javascript获取元素位置与..

∙·图片延迟加载实现

∙·js拖拽的效果类和dom-drag..

∙·JQuery实现离开页面时检测..

∙·javascript实现关键字高..

∙·网页设计中网页到底该多宽..

∙·eval与bind区别

∙·Response.Redirect、Respo..

∙·对字符串应用HTML编码防..



关于我们  |  网站地图  |  广告服务  |  联系我们

作品版权作者所有,如果无意之中侵犯了你的版权请来信告知,本站将在3个工作日内删除。

CopyRight@2008-2012Allrightsreserved

    桂ICP备11001120号

客户服务信箱:

starts_2000@

-

 

-

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1