b0ris Новенький участник форума
Зарегистрирован: 03.01.2009 Сообщения: 2
|
Добавлено: Сб Янв 03, 2009 23:58 Заголовок сообщения: Работа с fb2 с помощью XmlDocument в .NET 2.0 |
|
|
Здравствуйте!
Вот фрагмент кода программы для получения заголовка книги:
Код: |
string ret;
XmlDocument lDocument = new XmlDocument();
lDocument.Load(bookFileName);
ret = lDocument.SelectSingleNode("FictionBook/description/title-info/book-title").InnerText;
|
Вызывает "System.NullReferenceException was unhandled"
Видимо, что-то с Namespace. Меняю код:
Код: |
string ret=string.Empty;
XmlDocument lDocument = new XmlDocument();
lDocument.Load(bookFileName);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(lDocument.NameTable);
nsmgr.AddNamespace(string.Empty, "http://www.gribuser.ru/xml/fictionbook/2.0");
ret = lDocument.SelectSingleNode("FictionBook/description/title-info/book-title", nsmgr).InnerText;
|
Опять "System.NullReferenceException was unhandled"
Еще меняю:
Код: | string ret=string.Empty;
XmlDocument lDocument = new XmlDocument();
lDocument.Load(bookFileName);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(lDocument.NameTable);
nsmgr.AddNamespace("fb", "http://www.gribuser.ru/xml/fictionbook/2.0");
ret = lDocument.SelectSingleNode("fb:FictionBook/fb:description/fb:title-info/fb:book-title", nsmgr).InnerText; |
Ура! Заработало!
Только напрягает, что все-время нужно писать "fb:". Вопрос, а никак нельзя сделать, чтобы заработало как во втором случае? Вроде пространство по-умолчанию добавляется. А чего тогда не работает? |
|