我正在尝试基于我传递的错误代码来回复错误消息。如何使用linq做到这一点?
这是我的xml文档布局
<?xml version="1.0" encoding="utf-8" ?>
<errors>
<error code="101" message="Our Database is currently experience problems!">
</error>
</errors>
这是我在C#中的加载代码
XmlDocument doc = new XmlDocument();
doc.Load(HttpContext.Current.Server.MapPath("/App_Data/ErrorCodes.xml"));
答案 0 :(得分:0)
好吧,您可以加载一次文档,将其转换为Dictionary<int, string>
,如下所示:
var doc = XDocument.Load(HttpContext.Current.Server.MapPath("/App_Data/ErrorCodes.xml"));
var errors = doc.Root.Elements("error")
.ToDictionary(x => (int) x.Attribute("code"),
x => (string) x.Attribute("message"));
(您可以在网络应用加载时执行此操作。)
或者,如果您真的只需要找到一条消息:
var doc = XDocument.Load(HttpContext.Current.Server.MapPath("/App_Data/ErrorCodes.xml"));
var errors = doc.Root.Elements("error")
.Where(x => (int) x.Attribute("code") == code)
.Single()
.Attribute("message").Value;
请注意XDocument
是LINQ to XML的一部分; XmlDocument
不是。