|
|
|
Вывод XML из страницы JSP
|
|||
|---|---|---|---|
|
#18+
Генерится через DOM такой XML <?xml version="1.0" encoding="UTF-16"?> <!--XML document for books--><books><book num="1"><title>Java Programming</title><publisher>Prentice Hall</publisher></book><book num="2"><title>Java Programming</title><publisher>Prentice Hall</publisher></book></books> Он корректен все классно. Мне надо вернуть его в виде response. соответственно пишу в страничке jsp: <%@ page contentType="text/xml;charset=UTF-16" %> <?xml version="1.0" encoding="UTF-16"?> <!--XML document for books--><books><book num="1"><title>Java Programming</title><publisher>Prentice Hall</publisher></book><book num="2"><title>Java Programming</title><publisher>Prentice Hall</publisher></book></books> Ругается, что не корректен XML. стоит убрать строку <?xml version="1.0" encoding="UTF-16"?> все классно. Но у меня XML генерится автоматически в процессе сериализации, как быть??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:30:12 |
|
||
|
Вывод XML из страницы JSP
|
|||
|---|---|---|---|
|
#18+
<?xml version="1.0" encoding="UTF-16"?> - эта строка вроде как должна идти в начале документа, а конструкция Код: plaintext 1. 2. добавит перевод строки. попробуйте так: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 13:44:47 |
|
||
|
Вывод XML из страницы JSP
|
|||
|---|---|---|---|
|
#18+
Да, перевод строки лишний. Но это не решило проблему. мой код <%@ page import="javax.xml.parsers.*"%> <%//@ page import="java.io.*"%> <%//@ page import="java.util.*"%> <%@ page import="org.w3c.dom.Element"%> <%@ page import="org.w3c.dom.Text"%> <%@ page import="org.w3c.dom.Document"%> <%@ page import="org.w3c.dom.Comment"%> <%@ page import="org.w3c.dom.ls.DOMImplementationLS"%> <%@ page import="org.w3c.dom.DOMImplementation"%> <%@ page import="org.w3c.dom.ls.LSSerializer"%> <%@ page contentType="text/xml;charset=UTF-16"%> <%DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbFactory.newDocumentBuilder(); Document document = docBuilder.newDocument(); // Create a comment Comment comment = document.createComment("XML document for books"); document.appendChild(comment); // Create the books element as the root Element booksElement = document.createElement("books"); document.appendChild(booksElement); // Create elements for the first book Element bookElement = document.createElement("book"); bookElement.setAttribute("num", "1"); Element titleElement = document.createElement("title"); Text titleText = document.createTextNode("Java Programming"); Element publisherElement = document.createElement("publisher"); Text publisherText = document.createTextNode("Prentice Hall"); //Add elements for the first book booksElement.appendChild(bookElement); bookElement.appendChild(titleElement); titleElement.appendChild(titleText); bookElement.appendChild(publisherElement); publisherElement.appendChild(publisherText); //Create elements for the second book Element bookElement2 = document.createElement("book"); bookElement2.setAttribute("num", "2"); Element titleElement2 = document.createElement("title"); Text titleText2 = document.createTextNode("Java Programming"); Element publisherElement2 = document.createElement("publisher"); Text publisherText2 = document.createTextNode("Prentice Hall"); //Add elements for the second book booksElement.appendChild(bookElement2); bookElement2.appendChild(titleElement2); titleElement2.appendChild(titleText2); bookElement2.appendChild(publisherElement2); publisherElement2.appendChild(publisherText2); //Serialize a DOM document to an XML as a string DOMImplementation impl = document.getImplementation(); DOMImplementationLS implLS = (DOMImplementationLS)impl.getFeature("LS", "3.0"); LSSerializer serializer = implLS.createLSSerializer(); String outer = serializer.writeToString(document); System.out.print(outer); %> через вывод в System.out.print(outer); в консоль выводится абсолютно корректный XML если пвтаюсь в out.print(outer) говорит что не корректный XML. в ччем проблема не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 15:22:36 |
|
||
|
Вывод XML из страницы JSP
|
|||
|---|---|---|---|
|
#18+
импорты тоже добавляют переводы строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:01:28 |
|
||
|
Вывод XML из страницы JSP
|
|||
|---|---|---|---|
|
#18+
кстати, страница выводится в юникоде-16. возможно клиент не знает что это такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 16:03:16 |
|
||
|
Вывод XML из страницы JSP
|
|||
|---|---|---|---|
|
#18+
а я делал вот так: в jsp: <%@ page language="java" contentType="text/html; charset=Cp1251" pageEncoding="Cp1251"%><%= request.getAttribute("xml-text") %> в action: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbf.newDocumentBuilder(); Document doc = docBuilder.getDOMImplementation().createDocument("","main",null); ..... DomTreePrinter db = new DomTreePrinter(); db.parseDomTree(doc); request.setAttribute("xml-text",db.getOutputText()); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2006, 17:47:28 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=684&tid=2147550]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 455ms |

| 0 / 0 |
