在代码后面用XML数据填充文本块 [英] Fill textblock with XML data in code behind

查看:113
本文介绍了在代码后面用XML数据填充文本块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿伙伴,



通常我使用的是MS SQL Server来存储/加载信息,但现在我正在玩Lumia上的UWP,这很棒。但现在我想从本地文件加载内容并将其显示在Textblock中。



我多年没用XML了,所以这里是文件:



Hey mates,

normally I am using a MS SQL Server to store/load information but now I am playing with UWP on my Lumia and it is great. But now I want to load content from a local file and display it in a Textblock.

I have not worked for years with XML, so here's the file:

<Stations>
  <Station ID="1">
  <Name>ABC</Name>
  <Text>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</Text>
  <Picture>Assets\Pirate.ico</Picture>
  </Station>
  <Station ID="2">
    <Name>DEF</Name>
    <Text>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</Text>
    <Picture>Assets\Pirate.ico</Picture>
  </Station>
</Stations>





我的来源,是吗不工作:





My source, does not work:

public void fillContent(int ID)
        {
            byte[] byteArray = Encoding.UTF8.GetBytes(@"data\stations.xml");
            MemoryStream stream = new MemoryStream(byteArray);
            doc.Load(stream);
            foreach (XmlNode node in doc.DocumentElement.ChildNodes)
            {
                string text = node.InnerText;
                TBText.Text = text;
            }
        }





但我想加载特定数据,例如就像WHERE ID ='ID'之类的东西,就像在SQL中一样。



问候,

Vince



我尝试过:



阅读,通过谷歌搜索,阅读codeproject。



But I want to load specific data, e.g. something like "WHERE ID= 'ID'", like in SQL so far.

Regards,
Vince

What I have tried:

Reading, searching via google, reading on codeproject.

推荐答案

您的代码正在尝试将文字字符串 data \stations.xml 作为XML文档加载。它显然不是XML。



我怀疑你想从磁盘加载XML文件;在这种情况下,您只需要将文件的路径传递给加载方法:

Your code is trying to load the literal string data\stations.xml as an XML document. It's clearly not XML.

I suspect you wanted to load an XML file from disk; in which case, you just need to pass the path of the file to the Load method:
doc.Load(@"data\stations.xml");



如果你打算对XML文档运行查询,那么使用LINQ to XML可能会更容易:

LINQ to XML [ ^ ]


If you're going to be running queries against the XML document, it would probably be easier to use LINQ to XML:
LINQ to XML[^]

XDocument doc = XDocument.Load(@"data\stations.xml");
XElement station = doc.Descendants("Station").FirstOrDefault(s => (int?)s.Attribute("ID") == 1);


这篇关于在代码后面用XML数据填充文本块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆