Lectura de valor de un nodo XML

Necesito obtener el valor de un nodo en un archivo XML.

Mi archivo XML se ve así:

<?xml version="1.0" encoding="UTF-8"?>
<PRODUCTS>
<IPHONE>
    <NAME>iPhone 5s</NAME>
    <MODEL>5s</MODEL>
    <PRICE>899</PRICE>
    <COLOR>Gold</COLOR>
</IPHONE>

Quiero obtener el texto (iPhone 5s) del archivo. He intentado varias cosas que he encontrado en internet:

protected void Page_Load(object sender, EventArgs e)
{
    String[][] products = new String[3][];
    int i = 0;
    int j = 0;
    System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader("../XML-Test/Webshop-products.xml");
    while (reader.Read()) {
        if (reader.NodeType == XmlNodeType.Element)
        {
            if (reader.LocalName.Equals("NAME"))
            {
                //Name of product
                products[i][j] = reader.ReadInnerXml();
                j++;
            }
            if (reader.LocalName.Equals("MODEL"))
            {
                //Model
                products[i][j] = reader.ReadString();
                j++;
            }
            if (reader.LocalName.Equals("PRICE"))
            {
                //Price
                products[i][j] = reader.Value;
                j++;
            }
            if (reader.LocalName.Equals("COLOR"))
            {
                //Color
                products[i][j] = reader.Value;
                j++;
                i++;
            }
        }
    }
    for (int k = 0; k < products.Length; k++)
    {
        for (int l = 0; l < products[k].Length; l++)
        {
            Console.Write(products[k][l]);
        }
    }
}

Ningún método parece funcionar. Cuando ejecuto el proyecto (Proyecto ASP.NET) me sale el siguiente error:

System.NullReferenceException: referencia de objeto no establecida en una instancia a un objeto

¿Cómo puedo obtener los valores de los nodos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta