繁体   English   中英

从Windows Phone 8.1中的XML文件读取数据

[英]Read data from XML file in Windows Phone 8.1

伙计们! 我正在开发Windows Phone 8.1应用程序,我想从XML文件中读取一些内容。 我知道如何从这样的结构读取数据

<strings>
    <string01>Some text.</string01>
    <string02>Another text.</string02>
</strings>

用字符串声明一个类

public class TextStrings {
    public string string01 { get; set; }
    public string string02 { get; set; }
}

并像这样使用XmlSerializer

XmlSerializer deserializer = new XmlSerializer(typeof(TextStrings), new XmlRootAttribute("strings"));
string filename = "TextData.xml";
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///" + filename));
TextReader reader = new StreamReader(await file.OpenStreamForReadAsync());
object obj = deserializer.Deserialize(reader);
TextStrings xmlData = (TextStrings)obj;

然后将文本插入到TextBlock写作中

txtBlock.Text = xmlData.string01;

现在,我选择具有此结构的XML文件

<header>
    <book name="Book 01" chapters="10">
        <chapter n="1">
            <verse n="1">Some text.</verse>
            <verse n="2">More text.</verse>
            ...
        </chapter>
        ...
    </book>
    ...
</header>

因此,例如,我想在TextBlock中插入Book 01第1章的第2节。 我如何像以前一样使用XmlSerializer做到这一点? 还是有另一种方法? 因为标签是相同的,并且具有以下属性-“ n”,“ book”,“ chapters”。

你会写一些代码吗? 由于我仍在学习所有这些内容,因此如果不查看代码本身就很难理解。 谢谢!

得到它了:

XmlDocument doc = new XmlDocument();
doc.LoadXml(XDocument.Load("XMLFile.xml").ToString());
IXmlNode mynode = doc.SelectSingleNode("/header/book[@name='Book 01']/chapter[@n='1']/verse[@n='2']");
string mytext = mynode.InnerText;
MyTextBlock.Text = mytext;

完美的作品!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM