Работа с XML. NullReferenceException - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня. Возникла проблема и я не могу понять, что тут может быть не так. Есть xml, где нужу взять ноду, но почему-то мне говорят о подобном:
NullReferenceException: Object reference not set to an instance of an object
TooltipXml.DefautLanguage (System.String xmlPath) (at Assets/Scripts/TooltipXml.cs:191)
TooltipManager.Start () (at Assets/Scripts/TooltipManager.cs:48)
Я не понимаю, почему он не находит запись в, следующем, xml файле.
<?xml version="1.0" encoding="utf-8"?>
<root>
  <settings>
    <defautLang>ru</defautLang>
    <languages>
      <lang>ru</lang>
      <lang>en</lang>
      <lang>de</lang>
      <lang>fr</lang>
    </languages>
  </settings>
  <element id="2">
    <localization lang="en" tooltip="Cube in cube №2" text="" />
    <localization lang="ru" tooltip="Куб внутри куба №2" text="" />
  </element>
  <element id="5">
    <localization lang="en" tooltip="Capsule" text="" />
    <localization lang="ru" tooltip="капсула" text="" />
  </element>
  <element id="7">
    <localization lang="en" tooltip="Sphere №2 in cube №2" text="" />
    <localization lang="ru" tooltip="сфера №2 в кубе №2" text="" />
  </element>
  <element id="6">
    <localization lang="en" tooltip="Sphere №1 in cube №2" text="" />
    <localization lang="ru" tooltip="сфера №1 в кубе №2" text="" />
  </element>
</root>
Нужны данные из строки.
<defautLang>ru</defautLang>
Я забираю данный из xml с помощью следующего метода:
    public string DefautLanguage(string xmlPath)
    {
        string tmp ="";
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(xmlPath);
        XmlElement xRoot = xDoc.DocumentElement;
        XmlNode nodelocal = xRoot.SelectSingleNode("settings/defaultLang");
 
        return nodelocal.Value;
    }
Потом соответственно вызываю:
local = tooltipXml.DefautLanguage(fullPath);
Но в чём проблема? Где я ошибся или что-то не понял? Заранее спасибо за вашу помощь.

Решение задачи: «Работа с XML. NullReferenceException»

textual
Листинг программы
    public string DefautLanguage(string xmlPath)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(xmlPath);
        XmlElement xRoot = xmlDoc.DocumentElement;
        XmlNode nodelocal = xRoot.SelectSingleNode("settings/defaultLang");
 
        return nodelocal.Value;
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5