例如,我有以下XML:我想用XML-Reader读取Sender对象:
<gesmes:Sender>
<gesmes:name>European Central Bank</gesmes:name>
</gesmes:Sender>
我写了以下解析器:
using (var reader = XmlReader.Create(new FileStream(Console.ReadLine(), FileMode.Open, FileAccess.ReadWrite, FileShare.Read)))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
switch (reader.LocalName)
{
case "Sender":
do
{
reader.Read();
} while (reader.LocalName != "name");
Console.WriteLine("Sended from:" + reader.ReadElementContentAsString());
break;
}
}
}
}
这不是很优雅,Xml阅读器是否还有另一种方法,或者这是唯一的方法吗?
R3turnz
这是最好的方法。始终工作无误。使用XmlReader和xml Linq。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (var reader = XmlReader.Create(new FileStream(Console.ReadLine(), FileMode.Open, FileAccess.ReadWrite, FileShare.Read)))
{
while (!reader.EOF)
{
if (reader.Name != "name")
{
reader.ReadToFollowing("name");
}
if(!reader.EOF)
{
XElement name = (XElement)XElement.ReadFrom(reader);
}
}
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句