Selecting single Node with SelectSingleNode as XmlElement : XmlElement « XML « C# / CSharp Tutorial






using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;

public class Customer
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string EmailAddress { get; set; }
    public override string ToString()
    {
        return string.Format("{0} {1}\nEmail:   {2}", FirstName, LastName, EmailAddress);
    }
}
public class Tester
{
    static void Main()
    {
        List<Customer> customers = new List<Customer>{
                new Customer { FirstName = "A", 
                               LastName = "G",
                               EmailAddress = "o@a.com"},
                new Customer { FirstName = "B", 
                               LastName = "C",
                               EmailAddress = "k@a.com" },
                new Customer { FirstName = "D", 
                               LastName = "C",
                               EmailAddress = "d@a.com" },
                new Customer { FirstName = "E", 
                               LastName = "G",
                               EmailAddress = "j@a.com" },
                new Customer { FirstName = "L", 
                               LastName = "H",
                               EmailAddress = "l@a.com" }
            };

        XmlDocument customerXml = new XmlDocument();
        XmlElement rootElem = customerXml.CreateElement("Customers");
        customerXml.AppendChild(rootElem);
        foreach (Customer customer in customers)
        {
            XmlElement customerElem = customerXml.CreateElement("Customer");
            XmlAttribute firstNameAttr = customerXml.CreateAttribute("FirstName");
            firstNameAttr.Value = customer.FirstName;
            customerElem.Attributes.Append(firstNameAttr);

            XmlAttribute lastNameAttr = customerXml.CreateAttribute("LastName");
            lastNameAttr.Value = customer.LastName;
            customerElem.Attributes.Append(lastNameAttr);

            XmlElement emailAddress = customerXml.CreateElement("EmailAddress");
            emailAddress.InnerText = customer.EmailAddress;
            customerElem.AppendChild(emailAddress);

            rootElem.AppendChild(customerElem);
        }


        string xPath = "/Customers/Customer[@FirstName='D']";
        XmlElement customerElem1 = customerXml.SelectSingleNode(xPath) as XmlElement;
        if (customerElem1 != null)
        {
            Console.WriteLine(customerElem1.OuterXml);
            Console.WriteLine("customerElem.HasAttributes = {0}", customerElem1.HasAttributes);
        }
        else
            Console.WriteLine("Not found");

    }

}








30.14.XmlElement
30.14.1.Get node children count
30.14.2.Output child node inner text
30.14.3.Selecting single Node with SelectSingleNode as XmlElement