Chr*_*sCa 7 .net c# xml parsing
什么是解析lat和long以下xml片段的最简单方法.没有名称空间等.
它是一个字符串变量.不是流.
<poi>
<city>stockholm</city>
<country>sweden</country>
<gpoint>
<lat>51.1</lat>
<lng>67.98</lng>
</gpoint>
</poi>
Run Code Online (Sandbox Code Playgroud)
到目前为止我所阅读的所有内容都过于复杂,不应该是一项简单的任务,例如 http://geekswithblogs.net/kobush/archive/2006/04/20/75717.aspx
我一直在看上面的链接
当然在.net中有一种更简单的方法可以做到这一点?
Ash*_*Ash 18
使用Linq for XML:
XDocument doc= XDocument.Parse("<poi><city>stockholm</city><country>sweden</country><gpoint><lat>51.1</lat><lng>67.98</lng></gpoint></poi>");
var points=doc.Descendants("gpoint");
foreach (XElement current in points)
{
Console.WriteLine(current.Element("lat").Value);
Console.WriteLine(current.Element("lng").Value);
}
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)
using System.IO;
using System.Xml;
using System.Xml.XPath;
Run Code Online (Sandbox Code Playgroud)
...
string xml = @"<poi>
<city>stockholm</city>
<country>sweden</countr>
<gpoint>
<lat>51.1</lat>
<lng>67.98</lng>
</gpoint>
</poi>";
XmlReaderSettings set = new XmlReaderSettings();
set.ConformanceLevel = ConformanceLevel.Fragment;
XPathDocument doc =
new XPathDocument(XmlReader.Create(new StringReader(xml), set));
XPathNavigator nav = doc.CreateNavigator();
Console.WriteLine(nav.SelectSingleNode("/poi/gpoint/lat"));
Console.WriteLine(nav.SelectSingleNode("/poi/gpoint/lng"));
Run Code Online (Sandbox Code Playgroud)
您当然可以使用xpath SelectSingleNode
将<gpoint>
元素选择为变量.
甚至比 Mitch Wheat 的回答更简单,因为有问题的片段是一个格式良好的 XML 文档:
using System.Xml;
using System.IO;
...
string xml = @"<poi>
<city>stockholm</city>
<country>sweden</country>
<gpoint>
<lat>51.1</lat>
<lng>67.98</lng>
</gpoint>
</poi>";
XmlDocument d = new XmlDocument();
d.Load(new StringReader(xml));
Console.WriteLine(d.SelectSingleNode("/poi/gpoint/lat").InnerText);
Console.WriteLine(d.SelectSingleNode("/poi/gpoint/lng").InnerText);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19275 次 |
最近记录: |