关于使用XPath与XML作为类的XML的问题

时间:2011-02-04 06:08:49

标签: c# xml

我在C#代码中使用的XML文件很少。

到目前为止,我一直在使用XPATH来访问XML节点/属性

问题是如果我将XML转换为类文件(XSD.EXE)并在可维护性和代码可读性方面使用它,我将获得什么样的优势。

在这两种情况下,我知道如果添加或删除某些节点,则需要更改代码

在我的情况下,DLL进入GAC。

我只是想了解你的意见

干杯, KARTHIK

1 个答案:

答案 0 :(得分:1)

将XML转换为XSD然后转换为C#类的好处是可以轻松获取另一个文件。您的代码将类似于:

XmlSerializer ser = new XmlSerializer(typeof(MyClass));
FileStream fstm = new FileStream(@"C:\mysample.xml", FileMode.Open, FileAccess.Read);

MyClass result = ser.Deserialize(fstm) as MyClass;

if(result != null)
{
  // do whatever you want with your new class instance!
}

使用这几行,您现在拥有一个对象,它正好代表您的XML所包含的内容,并且您可以在对象实例上访问其属性作为属性 - 比在XML中执行大量复杂的XPath查询要容易得多

此外,由于您现在拥有XSD,您还可以轻松验证传入的XML文件,以确保它们确实与定义的合同相对应 - 这会导致更少的不断错误检查你的代码(你不必在每个XPath之后检查是否有任何实际匹配该表达式的节点等。)。