我怎样才能只获得第一个子节点?

How can I get only first childnode?

<Setup>
    <group id="test1">
        <group id="testist1">
            <value>Exam1</value>
            <value>Exam2</value>    
        </group2>
    </group>
    <group id="test2">
        <group id="testist2">
            <value>Exam1</value>
            <value>Exam2</value>    
        </group>
    </group>
</Setup>

我只想获取第一个子节点的属性。 -> 测试 1、测试 2
所以我尝试了这段代码,但打印了每个属性。

xmlNode.ChildNodes[0].Attributes[0].Value

如何只获取第一个子节点?谢谢!

这是我的完整代码。

private void addTreeNode(XmlNode xmlNode, TreeNode treeNode)
{
    XmlNode xNode;
    TreeNode tNode;
    XmlNodeList xNodeList;

    if (xmlNode.HasChildNodes)
    {
        xNodeList = xmlNode.ChildNodes;
        for (int x = 0; x <= xNodeList.Count - 1; x++)
        {
            xNode = xmlNode.ChildNodes[x];
            string nodetext = xNode.Name;
            if (!nodetext.Contains("text"))
            {
                if (xNode.Attributes.Count > 0)
                {
                    for (int i = 0; i < xNode.Attributes.Count; i++)
                    {
                        lblExam.Text += xmlNode.ChildNodes[0].Attributes[0].Value;
                    }
                }
            }
            treeNode.Nodes.Add(new TreeNode(nodetext));
            tNode = treeNode.Nodes[x];
            addTreeNode(xNode, tNode);
            }
    }
}

您可能会考虑使用 System.Xml.Linq 名称空间,该名称空间旨在搜索 Xml 层次结构。如果您不熟悉,这里有两个搜索示例,可让您从层次结构中准确选择您想要的内容。现在,我不是 100% 确定你在问什么,所以如果我错过了标记,请在评论中告诉我,我会尝试调整示例,但无论你在寻找什么 - 单个属性或其他任何东西,你可以使用 System.Xml.Linq.

找到它
using System;
using System.Linq;
using System.Xml.Linq;

namespace xml_get_first_node
{
    class Program
    {
        static void Main(string[] args)
        {
            XElement searchResult;

            XElement xsource = XElement.Parse(source);

            // EXAMPLE: Get the first group under Setup
            Console.WriteLine("EXAMPLE: Get the first group under Setup");
            searchResult = xsource.Elements("group").First();
            Console.WriteLine(searchResult.ToString());
            Console.WriteLine();

            // EXAMPLE: Get the group with id="test2"
            Console.WriteLine("EXAMPLE: Get the group with id='test2'");
            searchResult = 
                xsource.Descendants()
                .Where(xel=>(xel.Attribute("id") != null) &&  (xel.Attribute("id").Value == "test2")).First();
            Console.WriteLine(searchResult.ToString());
        }


        const string source = @"
        <Setup>
            <group id=""test1"">
                <group id=""testist1"">
                    <value>Exam1</value>
                    <value>Exam2</value>    
                </group>
            </group>
            <group id=""test2"">
                <group id=""testist2"">
                    <value>Exam1</value>
                    <value>Exam2</value>    
                </group>
            </group>
        </Setup>";
    }
}