是否可以使 LINQ To XML 动态化



动态可能不是这个词的最佳用法,但我会举一个例子来说明我的意思:

我有一些XML格式的配置文件,我需要访问这些配置文件的某些元素。 现在,在代码中,我正在做这样的事情:

string serverName = elements.Element("Server").Value;

如果Server保留为elements的子元素,以上一切都很好,但如果它移动,我将不得不修改代码。 我想到的一个解决方案是使用XPATH某个文件中定义的表达式,我将在运行时加载这些表达式,如果我正在寻找的元素或属性发生了变化,我就不必更改代码,我只需要更改XPATH表达式。 这是一种可行的方法还是有其他解决方案?

您可以使用子体在树中查找任何元素"服务器"元素。但是,在 Xml 更改时更改代码可能不是一件坏事 - 至少你知道自己在读什么。如果您使用 Descendands,您将读取该值,无论更改是否有意,这意味着您读取了碰巧包含"服务器"元素的任何 Xml 文档,这意味着您接受的 Xml 文件不必遵循任何结构/定义(除非您有 xsd 强制执行它)

最新更新