0

私がやろうとしているのは、その深さでノード名を返す深さを与えることです。要素名だけでそのレベルの情報は気にしません。

1 を指定すると、BookStoreInfo と Book のみが返されます

2 を指定すると、Address、Tel、Fax、BookName、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 に答える