powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / dom4j вопрос о Namespace
6 сообщений из 6, страница 1 из 1
dom4j вопрос о Namespace
    #35154101
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello

на этапе создания xml
Код: plaintext
1.
2.
3.
4.
5.
....
Element root = DocumentHelper.createElement("vevent");
root.addNamespace("", "urn:ietf:params:xml:ns:xcal");
XmlHelper.toXml(root, "class", event.getClassification());
...
<vevent xmlns="urn:ietf:params:xml:ns:xcal"> // OK
<class xmlns=""> // нужно просто <class>

как этого добиться ?

на этапе парсинга

Код: plaintext
1.
2.
3.
System.out.println(element.getNamespaceURI()); // пусто
System.out.println(element.getNamespace()); 
// вывод org.dom4j.Namespace@babe [Namespace: prefix  mapped to URI ""]

не удается получить пространство имен "urn:ietf:params:xml:ns:xcal"
что я делаю неправильно ?
...
Рейтинг: 0 / 0
dom4j вопрос о Namespace
    #35155140
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще ничего непонятно, что ты делаешь.
что означает вот это?
Код: plaintext
XmlHelper.toXml(root, "class", event.getClassification());
...
Рейтинг: 0 / 0
dom4j вопрос о Namespace
    #35156829
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoвообще ничего непонятно, что ты делаешь.
что означает вот это?
Код: plaintext
XmlHelper.toXml(root, "class", event.getClassification());


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class XmlHelper {

	public static <T> void toXml(Element e, String en, T value)
	{
		if (e == null || en == null)
			throw new IllegalArgumentException();

		if (value != null) {
			e.addElement(en).addText(value.toString());
		}
	}

...
Рейтинг: 0 / 0
dom4j вопрос о Namespace
    #35157814
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вот, вот в этом месте:
Код: plaintext
e.addElement(en)
элемент (class) создаётся в пустом пространстве имён, на что и указывает появляющийся xmlns="", а ты, я так понимаю, хочешь его создавать в пространстве имён родительского элемента. Так что добавляй ему пространство имён либо из родительского элемента, либо передавай аргументом функции.
...
Рейтинг: 0 / 0
dom4j вопрос о Namespace
    #35172469
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoтак вот, вот в этом месте:
Код: plaintext
e.addElement(en)
элемент (class) создаётся в пустом пространстве имён, на что и указывает появляющийся xmlns="", а ты, я так понимаю, хочешь его создавать в пространстве имён родительского элемента. Так что добавляй ему пространство имён либо из родительского элемента, либо передавай аргументом функции.


спасибо

я то думал что елементу присвоется автоматически пространства имён родителя если
оно не определено
...
Рейтинг: 0 / 0
dom4j вопрос о Namespace
    #35178793
Фотография YuriyB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так можно делать и никах проблемм ;-)

Код: plaintext
1.
2.
Element root = DocumentHelper.createElement(new QName("vevent", new Namespace("", "urn:ietf:params:xml:ns:xcal")));

...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / dom4j вопрос о Namespace
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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