2013-05-01 5 views
0

Я пытаюсь прочитать простой XML-файл, но у меня есть некоторые проблемы. Вот код, чтобы прочитать его:Чтение нулевого объекта из файла XML

XmlDocument doc = new XmlDocument(); 
    doc.Load("C:/file.xsd"); 

    XmlNode loc = doc.SelectSingleNode("/schema/annotation/appinfo"); 
    XmlNodeList refNode= loc.SelectNodes("referral"); 

А вот что XML выглядит следующим образом:

<schema> 
    <annotation> 
    <appinfo> 
    <referral/> 
    <referral/> 
    <referral/> 
    </appinfo> 
    </annotation> 
</schema> 

я упростил это ради понятности, но я стараюсь читать в «реферальные» узлы. Я подтвердил, что файл читается, однако переменная «loc» имеет значение null.

Поблагодарили бы за помощь в этом, спасибо!

+1

Есть ли пространство имен в не упрощенной версии? как в этом вопросе http://stackoverflow.com/questions/24734/selectnodes-not-working-on-stackoverflow-feed – Jonesopolis

+0

нет пространств имен, имя узлов точно указано (только удаленные атрибуты здесь) –

+0

предоставить документ. SelectSingleNode ("схема/аннотаций/AppInfo"); попробуйте. (удалить ведущую косую черту) – Jonesopolis

ответ

0

Следующий код дает правильные результаты, поэтому нет проблем с выбором узлов по указанному пути. Я думаю, вы должны добавить правильное пространство имен для работы.

string xml = @"<schema> 
       <annotation> 
       <appinfo> 
        <referral/> 
        <referral/> 
        <referral/> 
       </appinfo> 
       </annotation> 
      </schema>"; 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xml); 

XmlNode loc = doc.SelectSingleNode("/schema/annotation/appinfo"); 
XmlNodeList refNode = loc.SelectNodes("referral"); 
Смежные вопросы