0
我寫了一個類ReasXML的基本上只讀的XML文件。你看我與事件一起工作..現在問題是我想使用lsTags的結果,或者我想要我的XML文件的值。基本思想要做到這一點:使函數成爲方法LoadXMLFile和XMLFileLoaded的返回類型List。但是我收到一個錯誤,錯誤的返回類型。來自XDocument的事件返回值
有人可以幫助我這個給我一個事件的例子如何返回變量?
在此先感謝!
public void LoadXMLFile() {
WebClient xmlClient = new WebClient();
xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded);
xmlClient.DownloadStringAsync(new Uri("codeFragments.xml", UriKind.RelativeOrAbsolute));
}
protected void XMLFileLoaded(object sender, DownloadStringCompletedEventArgs e) {
if (e.Error == null) {
string xmlData = e.Result;
XDocument xDoc = XDocument.Parse(xmlData);
var tagsXml = from c in xDoc.Descendants("Tag") select c.Attribute("name");
List<Tag> lsTags = new List<Tag>();
foreach (string tagName in tagsXml) {
Tag oTag = new Tag();
oTag.name = tagName;
var tags = from d in xDoc.Descendants("Tag")
where d.Attribute("name").Value == tagName
select d.Elements("oFragments");
var tagXml = tags.ToArray()[0];
foreach (var tag in tagXml) {
CodeFragments oFragments = new CodeFragments();
oFragments.tagURL = tag.Attribute("tagURL").Value;
oTag.lsTags.Add(oFragments);
}
lsTags.Add(oTag);
}
//List<string> test = new List<string> { "a","b","c" };
lsBox.ItemsSource = lsTags;
}
}
如果您的目標是從此Xml文件中獲取對象,您可能需要使用「XmlSerializer」來代替。它通常要求您編寫的代碼少於明確的DOM處理。 – 2011-06-07 18:05:20
是的。它的導入是爲了知道這是一款Silverlight應用程序。我只想要關閉lsTags的值。我想,當我自己觸發一個事件時,我可以存儲這個值並進一步運行我自己的代碼。但它不起作用。我將刪除冗餘代碼。 – user 2011-06-07 18:14:08