Silverlig1.Silverlight读取外部XML加载配置-(使用WebClient读取XAP包同目录下的XML文件)

简介:

使用WebClient读取XAP包同目录下的XML文件

      我们想要读取XAP包下面的XML文件,需要将此XML文件放在加载XAP包的网页的目录中去,然后使用URI方式读取此URL方式下的XML文件。

      首先使用WebClient来异步下载此URL方式的XML文件,然后使用XmlReader来读取此XML文件的数据内容。

      在这里我们一共有3个知识点需要掌握:

      第一:获取当前调用此Silverlight程序XAP包的网页的地址的前缀,以获取XML文件的URL地址。
        public static string GetURL()
        {
            ScriptObject location = (HtmlPage.Window.GetProperty("location") as ScriptObject);
            object r = location.GetProperty("href");
            string URL = r.ToString().Substring(0, r.ToString().LastIndexOf('/')); //截取到当前SILVERLIGHT程序存放网络URL的前缀
            return URL;
        }
      第二:使用WebClient下载XML文件

         Uri uri = new Uri(GetURL() + "/Config.xml", UriKind.Absolute);
            WebClient Appclient = new WebClient();//使用WebClient下载config.xml文件,进行异步读取。
            Appclient.OpenReadAsync(uri);
            Appclient.OpenReadCompleted += new OpenReadCompletedEventHandler(Appclient_OpenReadCompleted);

      第三:使用XmlReader读取XML文件

            Stream stream = e.Result;
            using (XmlReader xReader = XmlReader.Create(stream))
            {
                xReader.ReadToFollowing("TestData");//使用XmlReader一直查找“TestData”元素读取该元素数据。
                string TestData = xReader.ReadElementContentAsString();
                MessageBox.Show(TestData);
                xReader.ReadToNextSibling("SecData");//使用ReadToNextSibling一直查找同级的“SecData”元素的数据,直到找到为止。
                string SecData = xReader.ReadElementContentAsString();
                MessageBox.Show(SecData);
            }

      需要引入的域名空间如下:

using System.IO;
using System.Xml;
using System.Windows.Browser;

      所有的具体代码如下:

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Net; 
  5. using System.Windows; 
  6. using System.Windows.Controls; 
  7. using System.Windows.Documents; 
  8. using System.Windows.Input; 
  9. using System.Windows.Media; 
  10. using System.Windows.Media.Animation; 
  11. using System.Windows.Shapes; 
  12. using System.IO; 
  13. using System.Xml; 
  14. using System.Windows.Browser; 
  15.   
  16. namespace SLReadXML 
  17.     public partial class MainPage : UserControl 
  18.     { 
  19.         public MainPage() 
  20.         { 
  21.             InitializeComponent(); 
  22.   
  23.             Uri uri = new Uri(GetURL() + "/Config.xml", UriKind.Absolute); 
  24.             WebClient Appclient = new WebClient();//使用WebClient下载config.xml文件,进行异步读取。 
  25.             Appclient.OpenReadAsync(uri); 
  26.             Appclient.OpenReadCompleted += new OpenReadCompletedEventHandler(Appclient_OpenReadCompleted); 
  27.         } 
  28.         void Appclient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
  29.         { 
  30.             Stream stream = e.Result; 
  31.             using (XmlReader xReader = XmlReader.Create(stream)) 
  32.             { 
  33.                 xReader.ReadToFollowing("TestData");//使用XmlReader一直查找“TestData”元素读取该元素数据。 
  34.                 string TestData = xReader.ReadElementContentAsString(); 
  35.                 MessageBox.Show(TestData); 
  36.                 xReader.ReadToNextSibling("SecData");//使用ReadToNextSibling一直查找同级的“SecData”元素的数据,直到找到为止。 
  37.                 string SecData = xReader.ReadElementContentAsString(); 
  38.                 MessageBox.Show(SecData); 
  39.             } 
  40.         } 
  41.         /// <summary> 
  42.         /// 获取当前SILVERLIGHT程序存放网络URL的前缀 
  43.         /// </summary> 
  44.         /// <returns>URL前缀</returns
  45.         public static string GetURL() 
  46.         { 
  47.             ScriptObject location = (HtmlPage.Window.GetProperty("location"as ScriptObject); 
  48.             object r = location.GetProperty("href"); 
  49.             string URL = r.ToString().Substring(0, r.ToString().LastIndexOf('/')); //截取到当前SILVERLIGHT程序存放网络URL的前缀 
  50.             return URL; 
  51.         } 
  52.     } 

config.xml文件代码

 
  1. <configuration> 
  2.     <TestData>First Test Data</TestData> 
  3.     <SecData>Secend Test Data</SecData> 
  4. </configuration> 
 

本实例程序在Silverlight 4.0的开发环境,VS2010开发。

以下为源码:点击下载SLReadXML.rar


本文转自程兴亮 51CTO博客,原文链接:http://blog.51cto.com/chengxingliang/821207

相关文章
|
4月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
11月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
221 1
|
10月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
788 8
|
10月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
138 2
|
11月前
|
XML 数据格式
加载 XML 字符串
加载 XML 字符串
|
11月前
|
XML 数据格式
加载 XML 字符串
加载 XML 字符串
|
11月前
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
484 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
11月前
|
XML 数据格式
加载 XML 字符串
加载 XML 字符串
|
11月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
144 3
|
11月前
|
XML 数据格式
加载 XML 字符串
加载 XML 字符串

热门文章

最新文章

相关课程

更多