Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / dom4j вопрос о Namespace / 6 сообщений из 6, страница 1 из 1
25.02.2008, 22:56
    #35154101
YuriyB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j вопрос о Namespace
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
26.02.2008, 13:09
    #35155140
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j вопрос о Namespace
вообще ничего непонятно, что ты делаешь.
что означает вот это?
Код: plaintext
XmlHelper.toXml(root, "class", event.getClassification());
...
Рейтинг: 0 / 0
27.02.2008, 02:41
    #35156829
YuriyB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j вопрос о Namespace
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
27.02.2008, 13:52
    #35157814
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j вопрос о Namespace
так вот, вот в этом месте:
Код: plaintext
e.addElement(en)
элемент (class) создаётся в пустом пространстве имён, на что и указывает появляющийся xmlns="", а ты, я так понимаю, хочешь его создавать в пространстве имён родительского элемента. Так что добавляй ему пространство имён либо из родительского элемента, либо передавай аргументом функции.
...
Рейтинг: 0 / 0
05.03.2008, 12:40
    #35172469
YuriyB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j вопрос о Namespace
maXmoтак вот, вот в этом месте:
Код: plaintext
e.addElement(en)
элемент (class) создаётся в пустом пространстве имён, на что и указывает появляющийся xmlns="", а ты, я так понимаю, хочешь его создавать в пространстве имён родительского элемента. Так что добавляй ему пространство имён либо из родительского элемента, либо передавай аргументом функции.


спасибо

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

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

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


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