使用C#获取XML命名空间元素
我在使用命名空间解析xml文件时遇到了一些麻烦
XML格式
<fh:FlightHistory FlightHistoryId="271955988" DepartureDate="2012-08-16 00:30" ArrivalDate="2012-08-16 04:09"
我想用C#读取fh:FlightHistory
属性,但我找不到任何解决方案。
提前致谢
您可以使用Linq-to-XML
和Linq
本身
XDocument doc = XDocument.Load(@"file.xml"); XNamespace ns="http://rss.flightstats.com/ns/rss/1.0"; var flight = doc.Descendants(ns + "FlightHistory"); foreach (var ele in flight) { Console.WriteLine(ele.Attribute("FlightHistoryId").Value); }
要么
var flight = doc.Descendants(ns + "FlightHistory") .Select(ele => new { FlightHistoryId=ele.Attribute("FlightHistoryId").Value, DepartureDate=ele.Attribute("DepartureDate").Value, ArrivalDate=ele.Attribute("ArrivalDate").Value }).FirstOrDefault(); if (flight != null) { Console.WriteLine(flight.FlightHistoryId + " " + flight.DepartureDate + " " + flight.ArrivalDate); }
这是正则表达式中的一个
string xmlFileString=""; Regex r=new Regex("(?<=|)",RegexOptions.Singleline); foreach(Match m in r.Matches(xmlFileString)) Console.WriteLine(m.Value);//your required output
- 如何向ThenInclude添加where子句
- 获得两个列表之间的差异
- 确定用户是否在本地管理员组中
- 如何在后台实现UDP监听器? (可用于log4net)
- 如何使用SelectSingleNode获取属性值?
- 我可以手动创建Controller实例,然后以用户身份运行它吗?
- 如何使用MVC5和entity framework使用自定义属性更新IdentityUser
- 如何在不使用Assembly.Load的情况下加载程序集?
- 为什么在使用带有ASP.Net Identity的ApplicationCookie之前调用SignOut(DefaultAuthenticationTypes.ExternalCookie)?