XPath belirteceğiniz selector'a göre DOM üzerinde istediğiniz node(lar)'a ulaşmanızı sağlar. Eğer xml belgenizde tag'lar için tanımladığınız custom prefix'ler varsa ve bunlara aşağıdaki gibi bir kod ile ulaşmak istediğinizde:
string value = _xmlDocument.SelectSingleNode("//my:ContactHome_Province").Value;
şu hatayı alırsınız:
"SelectSingleNode Error: Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function."
Bu hatanın sebebi "<my:contacthome_province>" tag'ındaki "my" prefix (öneki)'idir.
Bunu aşmanın yöntemlerinden birisi hata mesajından da görüleceği üzere prefix'lerinizi tanımlayan bir Namespace Manager veya XsltContext kullanmaktır.
İkinci yöntem ise Javascript'ten aşina olduğumuz "getElementsByTagName" metodunu kullanmaktır. "getElementsByTagName" namespace veya xslt tanımlamasını gerektirmeyen (namespace, xslt bağımsız) bir selector'dır. Tahmin edileceği üzere geriye bir array döndürür ve "SelectSingleNode" metodundan farklı olarak içeriğindeki veriye "Value" attribute'u ile değil "InnerText" veya "InnerHtml" attribute'u ile ulaşılır.
string value = _xmlDocument.GetElementsByTagName("my:ContactHome_Province")[0].InnerText;
Dikkat edilecek diğer bir husus "SelectSingleNode" metodunda "//" ekinin DOM üzerinde "my:ContactHome_Province" söz dizimine uyan bir tag'ı belirtirken, "GetElementsByTagName" metodunda buna gerek olmayışıdır.