none
Выдача XML-запросов с помощью XPath RRS feed

  • Вопрос

  • Всем доброго время суток. Если кому-то покажется это  элементарным я новичок в программировании. На cyberforum мне никто не смог дать ответа поэтому я обращаюсь к вам профессионалом высокого класса, помогите пожалуйста. Дана программа которая выдает запрос к XML-документу на предмет наличия определенной информации, для этого используется язык XML-запросов XPath.
    В следующем коде делается запрос по поводу названия глав:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.XPath;
     
    namespace XPathDemo
    {
      class Program
      {
        static void Main(string[] args)
        {
          XPathDocument doc = new XPathDocument("LesMis.xml");
          XPathNavigator navigator = doc.CreateNavigator();
          XPathNodeIterator iter = navigator.Select("/Book/Chapters/Chapter");
          while (iter.MoveNext())
          {
            Console.WriteLine("Chapter: {0}", iter.Current.Value);
          }
          Console.WriteLine("Found {0} chapters", navigator.Evaluate("count(/Book/Chapters/Chapter)"));
          Console.ReadKey();
        }
      }
    }
     
    

    Файл LesMis.xml на языке XPath:
    <?xml version="1.0" encoding="utf-8" ?>
    <Book>
     <Title>Les Misйrables</Title>
     <Author>Victor Hugo</Author>
     <Source Retrieved="2009-02-14T00:00:00">
      <URL>http://www.gutenberg.org/files/135/135.txt</URL>
     </Source>
     <Chapters>
      <Chapter>M. Myriel</Chapter>
      <Chapter>M. Myriel becomes M. Welcome</Chapter>
      <Chapter>A Hard Bishopric for a Good Bishop</Chapter>
      <Chapter>Monseigneur Bienvenu made his Cassocks last too long</Chapter>
      <Chapter>Who guarded his House for him</Chapter>
      <Chapter>Cravatte</Chapter>
      <Chapter>Philosophy after Drinking</Chapter>
      <Chapter>The Brother as depicted by the Sister</Chapter>
      <Chapter>The Bishop in the Presence of an Unknown Light</Chapter>
      <Chapter>A Restriction</Chapter>
      <Chapter>The Solitude of Monseigneur Welcome</Chapter>
      <Chapter>What he believed</Chapter>
      <Chapter>What he thought</Chapter>
      <Chapter>...far too many more...</Chapter>
     </Chapters>
    </Book>
     
    
    При запуске выскакивает ошибка исключения и программа аварийно завершается. Подскажите пожалуйста в чем ошибка. Заранее огромное спасибо.
    9 февраля 2011 г. 21:33

Ответы

  • нет никакой ошибки, приведенный вами код работает, в консоль все вывелось

    приведите текст ошибки, может быть нет файла LesMis.xml в директории с выполняемым exe файлом?

    а раз ошибка - то скорее всего его там нет)

    • Помечено в качестве ответа Abolmasov Dmitry 10 февраля 2011 г. 8:41
    9 февраля 2011 г. 23:12

Все ответы

  • нет никакой ошибки, приведенный вами код работает, в консоль все вывелось

    приведите текст ошибки, может быть нет файла LesMis.xml в директории с выполняемым exe файлом?

    а раз ошибка - то скорее всего его там нет)

    • Помечено в качестве ответа Abolmasov Dmitry 10 февраля 2011 г. 8:41
    9 февраля 2011 г. 23:12
  • Скорее всего проблема в наличии русского символа в
     <Title>Les Misйrables</Title>
    

    и в том что файл не в utf-8 кодировке находится. Удалите русский символ и программа должна заработать. А чтобы изменить кодировку файла можно воспользоваться, например, программой Notepad++.


    Для связи [mail]
    10 февраля 2011 г. 6:04
  • Спасибо Nikonorov Evgeniy

    Вы оказались правы нужно было скопировать  файл LesMis.xml в директорию с выполняемым exe файлом.

    10 февраля 2011 г. 7:03
  •  Здраствуйте    Dmitry      у меня файл находится   utf-8 кодировке находится.Оказывается делом было в том, что файл LesMis.xml и exe файл находились в разных директориях.
    10 февраля 2011 г. 7:12