1

我正在学习c#!我想知道是否有一种方法可以定义一个代表 XML 元素的 Class 属性,以及如何从 XML 文件中读取该属性!

4

2 回答 2

3

那么你当然可以声明一个类型的属性XElement

public class Foo
{
    public XElement Bar { get; set; }
}

您可以使用如下代码从 XML 文件中读取它:

XDocument doc = XDocument.Load("file.xml");
Foo foo = new Foo();
foo.Bar = doc.Root; // The root element of the file...

显然你可以得到其他元素,例如

foo.Bar = doc.Descendants("SomeElementName").First();

...但没有更具体的问题,很难给出更具体的答案。

于 2012-09-09T11:58:11.343 回答
2

假设你有这样的 XML 文件:

<Root>
<ExampleTag1>Hello from Minsk.</ExampleTag1>
<ExampleTag2>Hello from Moskow.</ExampleTag2>
...
</Root>

您可以创建如下内容:

public class Class1 : IDisposable
    {
        private string filePath;
        private XDocument document;

        public Class1(string xmlFilePath)
        {
            this.filePath = xmlFilePath;
            document = XDocument.Load(xmlFilePath);
        }

        public XElement ExampleTag1
        {
            get
            {
                return document.Root.Element("ExampleTag1");
            }
        }

        public void Dispose()
        {
            document.Save(filePath);
        }
    }

然后使用它:

new Class1(filePath).ExampleTag1.Value;
于 2012-09-09T12:02:20.750 回答