获取XElement的EndElement节点

时间:2016-10-16 13:01:58

标签: c# xml xelement

我正在尝试在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();
}

1 个答案:

答案 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);
                }
            }


        }
    }
}