0

我想要做的是给定一个深度返回该深度的节点名称。我不关心该级别的信息,只关心元素名称。

所以给定 1 它只会返回 BookStoreInfo 和 Book

给定 2 它只会返回地址、电话、传真、书名、ISBN

<BookStore>
  <BookStoreInfo>
    <Address />
    <Tel />
    <Fax />
 <BookStoreInfo>
 <Book>
    <BookName />
    <ISBN />
  <PublishDate />
 </Book>
 <Book>
 ....
 </Book>
</BookStore>

这是我目前正在尝试的。当我对节点进行计数时,它返回 11,这是正确的,但是当我显示节点时,它会显示我不想要的节点及其中的所有内容

        XDocument doc = XDocument.Load(doc);
        var AnswersScript = doc.Document.Element("root").Nodes();

        int count = 0;

        foreach (var node in AnswersScript)
        {
            count++;
            Console.WriteLine(node);
        }
        Console.WriteLine(count);
4

1 回答 1

0

如果我的问题有一半的答案

            XDocument doc = XDocument.Load(@"..\..\doc.xml");
        var AnswersScript = doc.Document.Element("root").Elements();

        int count = 0;

        foreach (var node in AnswersScript)
        {
            count++;
            if (doc.Document.Element("root").Element(node.Name).Elements().Count() > 1)
            {
            Console.WriteLine(node.Name);
            }
            else
            {}
        }
        Console.WriteLine(count);
        Console.ReadKey();
    }

这给了你元素节点现在我正在尝试一种方法来动态解析它而不用硬编码深度

于 2013-06-17T16:02:02.267 回答