我试图在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();
}
我通常这样做。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);
}
}
}
}
}