1

nth_element_name

public partial class XML_3 : Window
{
    public XML_3()
    {
        this.InitializeComponent();

        XmlDocument doc = new XmlDocument();
        doc.Load("D:/sample.xml");


        XmlNodeList student_list = doc.GetElementsByTagName("Student");

        foreach (XmlNode node in student_list)
        {
            XmlElement student = (XmlElement)node;

            int element_count = student.ChildNodes.Count;               

        }
    }
}

在上面的代码中。我可以获得除根元素(学生)之外的元素的计数。现在计数是 3。

但我必须得到 2ed 元素名称(Kavi),它是属性元素名称(ID),它是子元素名称(FName,MName)。

我应该怎么做才能得到这些东西。

请帮我...

4

1 回答 1

1

使用 XDocument(为什么?):

var doc = XDocument.Parse(xml); // OR Load(...)

var nodeCount = doc.Elements().Count();
var secondNode = doc.Elements().Skip(1).First();
var studentName = secondNode.Name;
var studentId = secondNode.Attribute("ID").Value;

或(对于您的代码):

var secondNode = student.ChildNodes[1] as XmlElement;
var studentName = secondNode.LocalName;
var studentId = secondNode.Attributes["ID"];

补充

var secondNode = student.ChildNodes[1];
var fName =
    secondNode.ChildNodes.Cast<XmlElement>().FirstOrDefault(x => x.LocalName == "FName").InnerText;
var mName =
    secondNode.ChildNodes.Cast<XmlElement>().FirstOrDefault(x => x.LocalName == "MName").InnerText;
var studentId = secondNode.Attributes["ID"].Value;
于 2012-06-08T11:29:11.087 回答