Я разрабатываю свое первое приложение WPF с C#, но у меня есть проблема, когда я пытаюсь прочитать атрибут Xml.C# Ошибка при чтении Xml Атрибут
У меня есть следующий Xml:
<?xml version="1.0" encoding="utf-8"?>
<Dictionary EnglishName="Italian" CultureName="Italian" Culture="">
<!-- MainWindow -->
<Value ID="WpfApplication1.MainWindow.BtnDrawCircle" Content="Circonferenza"/>
<Value ID="WpfApplication1.MainWindow.BtnDrawLine" Content="Linea"/>
....
....
</Dictionary>`
Теперь я пытаюсь получить атрибут "Содержимое" со следующим способом:
public static string ReadNodeAttribute(string IDAttribute)
{
try
{
XmlDocument _Doc = new XmlDocument();
_Doc.Load("myPath\\Language\\it-IT.xml");
string _Value = _Doc.SelectSingleNode("//Value[@ID=" + IDAttribute + "]").Attributes["Content"].Value.ToString();
return _Value;
}
catch (Exception ex)
{
return null;
}
}
Но это не работает:
Ошибка: ex {"Ссылка на объект не установлена в экземпляр объекта."} System.Exception {System.NullReferenceException}
«это не работает». Можете ли вы быть более spesific о том, что dosnt работает точно? Что именно вы передаете для 'IDAttribute'? –
В IDAttribute Я пытаюсь передать этот «WpfApplication1.MainWindow.BtnDrawCircle» .... но я получаю следующую ошибку: ex \t {«Ссылка на объект не установлена в экземпляр объекта.»} \t System.Exception {System. NullReferenceException} – Mameo96
Способ сделать это - не писать большой код кода с несколькими точками сбоя, а затем попытаться угадать, где он не удалось. Постройте его по одному маленькому кусочку за раз. Сначала попробуйте 'var xn = _Doc.SelectSingleNode (" // Value [@ ID = "+ IDAttribute +"] ");' и посмотрим, что вы получите для 'xn'. Вы можете использовать окно просмотра в отладчике. Когда вы выберете правильное выражение xpath, чтобы получить нужный вам узел, вы можете посмотреть его коллекцию «Атрибуты» в отладчике * и посмотреть, что там находится. Насколько мне известно, относительный путь к вашему файлу может быть неправильным. Проверьте _Doc после загрузки! –