Как сделать XML-документ в iframe? - PullRequest
0 голосов
/ 20 марта 2012

Моя цель - позволить пользователю ввести значение, получить некоторый XML, соответствующий указанному значению, и отобразить полученный XML в пределах iframe.

В моем HTML-файле есть следующий код jQuery:

$.post('VerifyServlet', { action: "getDocument", "tcNo": tcNo, "pgNo": pgNo }, function(data) {
    var xml = "<?xml-stylesheet type=\"text/xsl\" href=\"../xsl/esigtest.xsl\"?>" + data;
    var ifrm = document.getElementById('xmlLoader');
    ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
    ifrm.document.open('text/xml');
    ifrm.document.write(xml);
    ifrm.document.close();
    });

Соответствующий код в моем сервлете выглядит следующим образом:

response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.println(xmlString);

Тогда у меня есть мой iframe ...

...
<td colspan="3">
    <iframe id="xmlLoader" frameborder="0" width="100%" height="100%"></iframe>
</td>
...

Воедино, результат, показанный в моем iframe -

<?xml-stylesheet type="text/xsl" href="../xsl/esigtest.xsl"?>[object XMLDocument]

Я предполагаю, что [object XMLDocument], вероятно, относится к data, и что вызывается метод XMLDocument toString. Однако на самом деле я хочу, чтобы XML отображался с использованием таблицы стилей XSL и отображал результаты.

Честно говоря, я понятия не имею, как это сделать, поэтому я попробовал перестановки типа MIME, между text/plain, text/xml, application/xml, но ничего не работает. Есть ли способ сделать то, что я хочу достичь?

1 Ответ

0 голосов
/ 20 марта 2012

Для создания XML вы можете использовать этот синтаксис

 var xml = $('<xml>', { version : "1.0", encoding : "UTF-8" });

первый параметр - это имя узла, второй - объект, свойства которого станут атрибутами узла.

тогда вы можете использовать методы jQuery для создания xml

var head = $('<head>');
head.appendTo(xml);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...