我正在尝试在C#控制台应用程序中获取XElement的End节点。
比如说我的XML内容是:
<Object>
<Item>Word</Item>
<Value>10</Value>
</Object>
如何将</Object>
作为节点获取?
在迭代element.DescendantNodesAndSelf()
时,我仍然看不到孤立的</Object>
节点。
static void Main(string[] args)
{
const string xmlString = "<Object><Item>Word</Item><Value>10</Value></Object>";
var element = XElement.Parse(xmlString);
foreach (var node in element.DescendantNodesAndSelf())
{
Console.WriteLine($"{node}");
}
Console.ReadLine();
}
答案 0 :(得分:2)
我通常会做以下事情。 ReadFrom将读取结束元素。
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)
{
const string xmlString = "<Object><Item>Word</Item><Value>10</Value></Object>";
StringReader sReader = new StringReader(xmlString);
XmlReader xReader = XmlReader.Create(sReader);
while (!xReader.EOF)
{
if (xReader.Name != "Object")
{
xReader.ReadToFollowing("Object");
}
if (!xReader.EOF)
{
XElement _object = (XElement)XElement.ReadFrom(xReader);
}
}
}
}
}