1.ExtranetLink.xmlide
<?xml version="1.0" encoding="utf-8" ?> <menus> <menu Header="水利綜合網"> <extranet LinkName="百度網" LinkAdd="http://www.baidu.com"/> <extranet LinkName="度網線" LinkAdd="http://www.baidu.com"/> <extranet LinkName="計算機信息化" LinkAdd="http://www.baidu.com"/> <extranet LinkName="silverlight委員會" LinkAdd="http://www.baidu.com"/> <extranet LinkName="中央氣象局" LinkAdd="http://www.baidu.com"/> <extranet LinkName="聯合國" LinkAdd="http://www.baidu.com"/> </menu> <menu Header="各省市天氣網"> <extranet LinkName="中央氣象局" LinkAdd="http://www.baidu.com"/> <extranet LinkName="河北" LinkAdd="http://www.baidu.com"/> <extranet LinkName="北京" LinkAdd="http://www.baidu.com"/> <extranet LinkName="添加" LinkAdd="http://www.baidu.com"/> <extranet LinkName="修改" LinkAdd="http://www.baidu.com"/> <extranet LinkName="百度網盤" LinkAdd="http://www.baidu.com"/> </menu> </menus>
2.讀取xml文件this
private void getXmlDataTask_BeforeStart(object sender, EventArgs e) { Task task = sender as Task; task.MethodName = "ExtranetLink.xml"; task.ReturnType = typeof(String); }
3.處理文件spa
private void getXmlDataTaskCallBack(Response response) { tabConExtranet.Items.Clear(); XDocument document = XmlParseHelper.XmlParse(response.DataString); this.Dispatcher.BeginInvoke(() => { IEnumerable<XElement> elements = document.Descendants(XName.Get("menu")); foreach (XElement parent in elements) { TabItem tabItem = new TabItem(); tabItem.Header = parent.Attribute(XName.Get("Header")).Value; tabItem.Style = App.Current.Resources["tabItemStyle"] as Style; StackPanel sp = new StackPanel(); tabItem.Content = sp; sp.Orientation = Orientation.Horizontal; IEnumerable<XElement> childs = parent.Descendants(XName.Get("extranet")); foreach (XElement child in childs) { HyperlinkButton hyper = new HyperlinkButton(); hyper.TargetName = "_blank"; hyper.Content = string.Concat("", child.Attribute(XName.Get("LinkName")).Value); hyper.NavigateUri = new Uri(child.Attribute(XName.Get("LinkAdd")).Value); hyper.Style = App.Current.Resources["hyperlinkStyle"] as Style; sp.Children.Add(hyper); } tabConExtranet.Items.Add(tabItem); } }); }