HTML не отображать XMLDom, созданный с помощью TransformerFactory - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю над веб-проектом и использую XMLHttpRequest, поэтому мне не нужно перезагружать страницу каждый раз, когда я отправляю запрос. Возвращенные данные будут XMLreponseText

. Это моя функция, используемая для преобразования DomResult в XMLString

public static String parseDomToXMLString(DOMResult configPath, String xslPath) throws Exception {
    System.out.println("Đã vào parse");
    StreamSource xslCate = new StreamSource(xslPath);
     DOMSource source=new DOMSource(configPath.getNode());

    //Mở string writter
    StringWriter writer=new StringWriter();


    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(xslCate);
    transformer.setOutputProperty(OutputKeys.INDENT,"yes");
    transformer.transform(source, new StreamResult(writer));

    return writer.getBuffer().toString();//1 domresult mới sau khi apply stylesheet
}

. Я использую метод применения таблицы стилей, поэтому он может выводить нужный мне формат. Это мой таблица стилей

image

Метод parseDomToXMLString вернет мне строку xml, и я верну ее в XMLHttpRequest через эту функцию.

response.getWriter (). Write (resultString);

Это моя функция, которую я пишу в javascript, чтобы получить xmlString

        function saveClick(id, gundamtype, gundamhost, differ) {
        var xmlHttp = new XMLHttpRequest();
        var parser = new DOMParser();
        var xmlDoc;
        var url = "SaveClickAndViewServlet?id=" + id + "&interactionType=click" + "&gundamtype=" + gundamtype + "&gundamhost=" + gundamhost + "&differ=" + differ;

        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                if (differ === "shop") {

                    console.log(xmlHttp.responseText);//This is my result after request to server
                    xmlDoc = parser.parseFromString(xmlHttp.responseText, "text/xml");
                    var inside = xmlDoc.getElementById("inside");
                    var outside = document.getElementById("outsideDetail");

                    removeAllResultSearch(outside);
                    outside.appendChild(inside);
                }
            }
            ;
        }
        xmlHttp.send(null); //Bắt đầu gửi request đi
    }

Моя цель - преобразовать эту строку xmlstring в формат dom xml и затем смонтировать ее в html, чтобы отобразить ее. Но он не принимает html теги и показывает только строку результата

Это результат, когда я использую эту строку

outside.appendChild (inside);

для отображения на моем сайте

PG 1/60 RX-0 UNICORN GUNDAM PG 4200000 Go на страницу магазина ->

Мой веб-сайт не принимает теги html, и даже если я напишу этот вопрос, он не попадет в раздел кода примера, поэтому я не могу показать всем, я могу только делать фотографии, чтобы вы могли их видеть . This the ouput string look like after a when i using method parseDomToXMLString

И вот результат, который я получаю в своей сети enter image description here

Я запускаю свою сеть в Edge и Chrome, но ни один из них не удался. Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 03 апреля 2020

Благодаря инструкциям Мартина Хоннена я смог показать интерфейс рендеринга. Вот как я могу это исправить.

В функции

      function saveClick(id, gundamtype, gundamhost, differ) {
    var xmlHttp = new XMLHttpRequest();
    var parser = new DOMParser();
    var xmlDoc;
    var url = "SaveClickAndViewServlet?id=" + id + "&interactionType=click" + "&gundamtype=" + gundamtype + "&gundamhost=" + gundamhost + "&differ=" + differ;

    xmlHttp.open("GET", url, true);
    xmlHttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            if (differ === "shop") {

                console.log(xmlHttp.responseText);//This is my result after request to server
                xmlDoc = parser.parseFromString(xmlHttp.responseText, "text/xml");
                var inside = xmlDoc.getElementById("inside");
                var outside = document.getElementById("outsideDetail");

                removeAllResultSearch(outside);
                outside.appendChild(inside);
            }
        }
        ;
    }
    xmlHttp.send(null); //Bắt đầu gửi request đi
}

Изменить

outside.appendChild (inside);

Into

outside.innerHTML = xmlHttp.responseText;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...