var myDocfragment = xsltProcessor.transformToFragment(xmlDoc, document); myDocfragment - is an object of type - document-fragment. How can I get all the tags with values as text? I want to transfer it here - document.write (...)
Here is my code:
var res_xml = json2xml(o_rows, o_cols); var xslStylesheet; var myXMLHTTPRequest = new XMLHttpRequest(); myXMLHTTPRequest.open("GET", "xsl/rep_list.xsl", false); myXMLHTTPRequest.send(null); var xsltProcessor = new XSLTProcessor(); xslStylesheet = myXMLHTTPRequest.responseXML; xsltProcessor.importStylesheet(xslStylesheet); var myDocFragment = xsltProcessor.transformToFragment(res_xml, document); var wnd_list=window.open("", "wnd_list"); wnd_list.document.body.appendChild(myDocFragment); function json2xml(obj_json, a_fields) { var doc = $.parseXML("<root/>"); var xml = doc.getElementsByTagName("root")[0]; var elem, a_cnt, s_row, s_str; var gr_rows= doc.createElement('rowset'); for (key in obj_json) { if (obj_json.hasOwnProperty(key)) { el_row = doc.createElement('row'); ochild=obj_json[key]; for (key2 in ochild) { if ($.isEmptyObject(a_fields)) { a_cnt=[0]; } else { a_cnt=$.grep(a_fields , function (element, index) { return element.field == key2; }); } if (a_cnt.length>0){ elem = doc.createElement(key2); s_str=ochild[key2]; $(elem).text(s_str); el_row.appendChild(elem); } }; gr_rows.appendChild(el_row); } } xml.appendChild(gr_rows); return xml; } Example res_xml:
<?xml version="1.0" encoding="UTF-8"?> <root> <rowset> <row> <recid>3</recid> <date_reg>13.09.2016 17:20:48</date_reg> <rep_type>Отчет по расходам на содержание жилья</rep_type> <creator>Омаров Габит </creator> <rep_stat>Создан</rep_stat> </row> </rowset> <colset> <col>Номер</col> <col>Дата</col> <col>Наименование</col> <col>Автор</col> <col>Статус</col> </colset> </root> Example rep_list.xsl:
<?xml version="1.0" encoding="UTF-8"?> <html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <body> <table border="1" cellspacing="0"> <tr> <xsl:for-each select="root/colset/col"> <th align="center"><xsl:value-of select="."/></th> </xsl:for-each> </tr> <xsl:for-each select="root/rowset/row"> <tr> <xsl:for-each select="*"> <td><xsl:value-of select="."/></td> </xsl:for-each> </tr> </xsl:for-each> </table> </body> </html> I posted a demonstration:
- Open the resource https://demo.topksk.kz
Enter:
login: gabit.omarov@gmail.com pass: orapas $ 123Insert url: https://demo.topksk.kz/reports.html and press Enter.
- "Type of application" - select "Report on housing costs".
- Click on the button - "Search"
- In the tabular part, click on the button - "List display"