首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从xml文件加载控件

从xml文件加载控件
EN

Stack Overflow用户
提问于 2010-02-08 00:40:32
回答 2查看 863关注 0票数 2

我知道如何写入xml文件,但是我在做我需要做的事情时遇到了麻烦,并且找不到关于这类问题的足够信息。

下面是一个xml文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<controls>
    <Label Content="Double-click to edit." Location="258, 178" Size="101, 13" ForeColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="532, 133" Size="101, 13" LinkColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="424, 212" Size="101, 13" LinkColor="-1" /> 
    <Label Content="Double-click to edit." Location="282, 89" Size="101, 13" ForeColor="-1" />  
    <Label Content="Double-click to edit." Location="528, 178" Size="101, 13" ForeColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="528, 133" Size="101, 13" LinkColor="-1" />  
    <LinkLabel Content="Double-click to edit." Location="528, 149" Size="101, 13" LinkColor="-1" /> 
    <Label Content="Double-click to edit." Location="528, 164" Size="101, 13" ForeColor="-1" />
</controls>

在我的应用程序中打开这个文件后,我需要做的是:

代码语言:javascript
复制
foreach(control in XmlFile)
{   

  get Content
  get Location
  get Size
  get ForeColor/LinkColor
  // do something...
}

有人能帮我解决这个问题吗?如果能帮上忙我会很感激的。

谢谢

贝尔

EN

回答 2

Stack Overflow用户

发布于 2010-02-08 01:20:46

使用LINQ:(对于ForeColor/LinkColor检查为null)

代码语言:javascript
复制
XDocument loaded = XDocument.Load(@"C:\XMLFile1.xml");

            var q = from c in loaded.Descendants().Descendants()
                            select new
                            {
                                content = c.Attribute("Content"),
                                location = c.Attribute("Location"),
                                size = c.Attribute("Size"),
                                foreColor = c.Attribute("ForeColor"),
                                linkColor = c.Attribute("LinkColor")
                            };

            foreach (var controlItem in q)
                Console.WriteLine("Control content = {0}", controlItem.content);
票数 2
EN

Stack Overflow用户

发布于 2010-02-08 00:55:39

如果您试图迭代XML中的所有控件并检索信息,则应使用XPath

下面是一个示例:

代码语言:javascript
复制
XPathDocument Doc = new XPathDocument("yourfile.xml");
XPathNavigator navigator = Doc.CreateNavigator();
XPathNodeIterator iterator = navigator.Select("/controls/*");
while (iterator.MoveNext())
{
    System.Diagnostics.Debug.Print(iterator.Current.Content);
    System.Diagnostics.Debug.Print(iterator.Current.Location);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2217401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档