English 中文(简体)
这是将xml数值装入结构的最有效方式吗?
原标题:Is this the most efficient way of loading xml values into a structure?
  • 时间:2009-10-07 11:49:22
  •  标签:

我试图将XML中的数据输入某种结构,一旦装满我可以说数据的话。 财产名称改为价值。

以下编码是将数据输入结构的最优化方法吗?

显然,如果你有分点内容的元件将要求每个单元首先()成为一个问题,那么,有人会打上记忆吗?

增 编

    string xml = @"<ROOT>
                   <ID>1</ID>
                   <NAME>RF1</NAME>
                   <STAT>10200</STAT>
                   <TEST>
                       <ID>1</ID>
                       <NAME>BIGUN</NAME>
                   </TEST>
                   </ROOT>
                   ";

     XElement Data = XElement.Parse(xml);


     var Element = (from p in Data.Descendants("ROOT") 
                   select new { 
                        ID = (int)p.Element("ID"), 
                        Test = new { 
                                    ID = p.Element("TEST").Descendants("ID").First(), 
                                    NAME = p.Element("TEST").Descendants("NAME").First() 
                                 }, 
                        Stat = p.Element("STAT") }).First();

//Read Element.ID, Element.Test.Name
最佳回答

您可以使用<条码>XmlSerializer来进行空气化?

using System;
using System.IO;
using System.Xml.Serialization;

[XmlRoot("ROOT")]
public class MyType
{
    [XmlElement("ID")]
    public string Id { get; set; }
    [XmlElement("NAME")]
    public string Name { get; set; }
    [XmlElement("STAT")]
    public string Stat { get; set; }
    [XmlElement("TEST")]
    public MyOtherType Nested { get; set; }
}
public class MyOtherType
{
    [XmlElement("ID")]
    public string Id { get; set; }
    [XmlElement("NAME")]
    public string Name { get; set; }
}
static class Program
{

    static void Main()
    {
        string xml = @"<ROOT>
                   <ID>1</ID>
                   <NAME>RF1</NAME>
                   <STAT>10200</STAT>
                   <TEST>
                       <ID>1</ID>
                       <NAME>BIGUN</NAME>
                   </TEST>
                   </ROOT>";
        MyType obj = (MyType) new XmlSerializer(typeof(MyType))
            .Deserialize(new StringReader(xml));
        Console.WriteLine(obj.Id);
        Console.WriteLine(obj.Name);
        Console.WriteLine(obj.Stat);
        Console.WriteLine(obj.Nested.Id);
        Console.WriteLine(obj.Nested.Name);
    }
}
问题回答

d 用于淡化和Xml属性:可以读得更多。

没有,它不是最优化的方式,但它很可能做得好。

业绩最理想的是写出你自己专门从事这项工作的XML教区,但这当然是更多的法典。

我不知道你为什么对<代码>First方法感到关切。 它只会让第一个项目通过,然后停止阅读,从而赢得任何问题。 当然,“XML”教区仍然必须使所有儿童都处于平等地位。





相关问题
热门标签