3

複数のサブツリーを含む XML ファイルがあり、それらのサブツリーにもサブツリーを含めることができます。このようなもの:

<File>
<A>...</A>
<B>...</B>
<C>
..
<D>..</D>
</C>
</File>

(「..」はサブツリーの要素です)。各サブツリーを読み取ってから、そのすべての要素を読み取るにはどうすればよいですか (このサブツリーにサブツリーが含まれている場合、それとすべての要素を個別に読み取りたい場合)。

4

3 に答える 3

3

XmlReaderその目的のためのサブツリーの読み取りをサポートします。必要に応じて、サブツリーリーダーを使用して他のモデル(、、など)への入力として使用できXmlDocumentますXElement

using(var reader = XmlReader.Create(source))
{
    reader.MoveToContent();
    reader.ReadStartElement(); // <File>
    while(reader.NodeType != XmlNodeType.EndElement)
    {
        Console.WriteLine("subtree:");
        using(var subtree = reader.ReadSubtree())
        {
            while(subtree.Read())
                Console.WriteLine(subtree.NodeType + ": " + subtree.Name);
        }
        reader.Read();
    }
    reader.ReadEndElement(); // </File>
}
于 2011-08-16T06:52:33.403 に答える
1

XDocumentを使用して、.NET で XML ドキュメントを読み取ることができます。たとえば、Dノードの値を読み取るには:

var doc = XDocument.Load("test.xml");
var value = doc.Root.Element("C").Element("D").Value;
于 2011-08-16T06:45:20.437 に答える
0

次のコードで解決策を得ました

var doc = XDocument.Load("C:\\Test.xml");
var DBID = doc.Root.Element("database").FirstAttribute.Name;
var DBIDValue = doc.Root.Element("database").FirstAttribute.Value;
于 2013-12-06T09:27:28.250 に答える