powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание своего XML документа
19 сообщений из 19, страница 1 из 1
Создание своего XML документа
    #33382282
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаю XML документ и ручками добавляю туда первый элемент
Код: plaintext
1.
2.
3.
 XMLDocument outXML =  new  XMLDocument();
 Element root = outXML.createElement("ROOT");
 outXML.appendChild(root);
затем мне надо в цикле добавить туда еще документы полученные по ссылке
и добавляю его в этот же созданный документ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
parser =  new  DOMParser();
parser.setPreserveWhitespace(true);
// Parse XML 
filexmlURL =  new  URL(rset.getString( 2 )+"?hfPeople="+People.getValue());
parser.parse(filexmlURL);
xml = parser.getDocument();
outXML.appendChild(xml);//Кажеться вот это делаю неверно
может кто подскажет как сделать правильно?
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383190
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В JAXP для этого надо использовать Document.importNode(Node node);
Иначе будут валиться непонятные ошибки.

Второе: не совсем понятно как один XML документ добавляется в другой. Если в виде элемента так и добавляйте его в виде какого-нибуть документа.
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383460
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТАк вот этого я и не могу сделать вот сейчас попробовал то что вы предложили:
Код: plaintext
1.
2.
3.
outXML.appendChild(xml);
заменил на 
outXML.importNode((Node) xml,false);
но он стал ругаться
oracle.xml.parser.v2.XMLDOMException: import not allowed on nodes of type document
, а раньше ругался так
oracle.xml.parser.v2.XMLDOMException: node of type document cannot be added to node of type document
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383491
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
outXML.appendChild( xml.getDocumentElement() );
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383548
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasaoutXML.appendChild( xml.getDocumentElement() );
НЕТ не работает, ничего не добавляет, может я что то не так делаю, но до выполнения outXML.importNode(xml.getDocumentElement(),true); и после значеие outXML одинаковы
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383571
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
упс... не заметил...
root.appendChild(xml.getDocumentElement());
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383645
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или я чтото не понимаю или root.appendChild(xml.getDocumentElement()); выдает oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
то есть не может аппендить один документ к другому
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33383731
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vintто есть не может аппендить один документ к другомуточно, нельзя!!!

если правильно понял, есть несколько хмл документов которые надо объединить...
тогда так:
1. Собираешь все документы (Stringи) в один String (StringBufer, StringWriter).
2. Погружаешь его в тег корня
<root>
.... тута общий документ
</root>
3. А теперь скармливаешь все это parser

хотя может быть и другой способ....
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384087
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно более менее закодированно это же написать, а то у мня трабла я в java не специалист и туго понимаю то что вы написали, вернее словами то понимаю но вот закодировать сам не могу
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384200
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
String xml1="<xml1>всякая фигня 1<xml1>"; // у тебя загружаешь из URL
String xml2="<xml2>всякая фигня 2<xml2>"; // у тебя загружаешь из URL

StringBuffer sb= new  StringBuffer();
sb.append("<root>").append(xml1).append(xml2).append("</root>");

//про Оракл не знаю, но д.б. парсер с параметром стринга или реадера
Document doc=parser.parse(sb.toString()); //или
doc=parser.parse( new  StringReader(sb.toString())); 

// в цикл сам переделаешь

...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384501
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щяс буду плякать(
все работает но! есть маленькая проблема! я получаю xml с помошью метода parseDTD(URL, String)
Parses the XML External DTD document pointed to by the given URL and creates the corresponding XML document hierarchy.
а вот как с адреса в строку загнать я не знаю и не знаю как этот документ из XMLDocument перевести в String.
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384543
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vintили я чтото не понимаю или root.appendChild(xml.getDocumentElement()); выдает oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
то есть не может аппендить один документ к другому

Поэтому сначала нод импортируешь, а потом только аппендишь.

VintЩяс буду плякать(
все работает но! есть маленькая проблема! я получаю xml с помошью метода parseDTD(URL, String)
Parses the XML External DTD document pointed to by the given URL and creates the corresponding XML document hierarchy.
а вот как с адреса в строку загнать я не знаю и не знаю как этот документ из XMLDocument перевести в String.
а какую библиотеку ты юзаешь? Что такое "адреса в строку загнать ?
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384615
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naug
Поэтому сначала нод импортируешь, а потом только аппендишь.

Я же уже писал не силен в java, если можно кодом напишите как импортировать нод в строку???
Naug
а какую библиотеку ты юзаешь? Что такое "адреса в строку загнать ?
Это значит загрузить документ в строку так же как функцция parseDTD(URL, String) по адресу загоняет в xml документ
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384693
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так говоришь, как будто я знаю что такое parseDTD и откуда он взялся. Это что-то из оракула?

Есть несколько библиотек позаоляющих работать с xml
базовая сановская jaxp,jdom, log4j и наверное много всяких ещё. Все они различаются и соответственно работают по разному.
Почитай доку по сановской версии - очень подробно всё расписано. Тебя особо интересует DOM.
http://java.sun.com/webservices/jaxp/dist/1.1/docs/tutorial/TOC.html

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   static   void  inject(Node host,Node injection) {

        Node inj= host.getOwnerDocument().importNode( injection,true);
        host.appendChild(inj);
    }
 public   static  String xml2String(Document doc)  throws  TransformerException {
        ByteArrayOutputStream out= new  ByteArrayOutputStream();
        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer=tFactory.newTransformer();
        StreamResult result =  new  StreamResult(out);
        transformer.transform(  new  DOMSource(doc), result);
         return  out.toString();
    }
код юзает jaxp.
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384698
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dom4j*
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33384857
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сдаюсь я уже не могу смотреть на эту страничку может кто нить сжалиться и скажет почему NullPointerException
см.присоединенный файл
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33385153
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо того чтоб плакать приведи полностью сообщение об ошибке
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33385790
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
java.lang.NullPointerException
	at _demo._helloworld._workproba._jspService(_workproba.java: 235 )
	at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java)
	at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java)
	at oracle.jsp.JspServlet.doDispatch(JspServlet.java)
	at oracle.jsp.JspServlet.internalService(JspServlet.java)
	at oracle.jsp.JspServlet.service(JspServlet.java)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java: 588 )
	at org.apache.jserv.JServConnection.processRequest(JServConnection.java)
	at org.apache.jserv.JServConnection.run(JServConnection.java)
	at java.lang.Thread.run(Thread.java: 479 )
Я не знаю класса который её вызвал вот потому и не могу понять что делать
...
Рейтинг: 0 / 0
Создание своего XML документа
    #33385922
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Методом тыка нашел ошибку вот такая строка
XMLNode inj= (XMLNode) xml.getOwnerDocument().getChildNodes();
как только не писал все равно дает ошибку
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание своего XML документа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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