powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath и xmlns
3 сообщений из 3, страница 1 из 1
XPath и xmlns
    #33534750
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть xml-документ:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="utf-8" ?>
<modules xmlns ="urn:module-list">
  <module_item id="ID_1" loadfrom="asd.dll">
    <classname>TestClass1</classname>
    <manifest>TestClass1.manifest.xml</manifest>
  </module_item>
  <module_item id="ID_2" loadfrom="asdf.dll">
    <classname>TestClass2</classname>
    <manifest>TestClass2.manifest.xml</manifest>
  </module_item>
  <module_item id="ID_3" loadfrom="asdf.dll">
    <classname>TestClass3</classname>
    <manifest>TestClass3.manifest.xml</manifest>
  </module_item>
</modules>

Выбираю из документа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    
         XmlDocument doc = new XmlDocument();
            doc.Load("module.list.xml");
            XmlNamespaceManager nman = new XmlNamespaceManager(doc.NameTable);
            nman.AddNamespace("", "urn:module-list");
            XmlNodeList list = doc.DocumentElement.SelectNodes("descendant::module_item/@loadfrom", nman);
            foreach (XmlNode var in list)
            {
                MessageBox.Show(var.Value);
            }

Ничего не выбирает!
Однако есть в документе удалить
Код: plaintext
xmlns ="urn:module-list"
, то все в порядке.

Применение или неприменение XmlNamespaceManager не влияет!



________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
XPath и xmlns
    #33535489
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
using System;
using System.Xml;

class Sample
{
	public static void Main(String[] args)
	{
	         XmlDocument doc = new XmlDocument();
	            doc.Load("module.list.xml");
	            XmlNamespaceManager nman = new XmlNamespaceManager(doc.NameTable);
	            nman.AddNamespace("default_ns", "urn:module-list");
	            XmlNodeList list = doc.DocumentElement.SelectNodes("descendant::default_ns:module_item/@loadfrom", nman);
	            foreach (XmlNode var in list)
	            {
	                Console.WriteLine(var.Value);
            }
         }
}
...
Рейтинг: 0 / 0
XPath и xmlns
    #33536504
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю!

Я видел в MSDN, что надо указывать пространство имен явно, но не понял к чему это. Странно тогда, зачем там предлагается добавлять namespace по-умолчанию через AddNamespace(string.Empty, "..."). Получается толку никакого...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath и xmlns
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]