zoukankan      html  css  js  c++  java
  • 小tips:xml文件转为html表格展示示例

    books.xml文件格式如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <xbrl xmlns="http://www.xbrl.org/2003/instance" xmlns:cfid-common="http://eid.csrc.gov.cn/cn/fid/rpt/common/2007-09-01" xmlns:cfid-fgi="http://eid.csrc.gov.cn/cn/fid/rpt/fgi/2007-09-01" xmlns:cfid-gcd="http://eid.csrc.gov.cn/cn/fid/rpt/gcd/2007-09-01" xmlns:cfid-ie="http://eid.csrc.gov.cn/cn/fid/rpt/ie/2007-09-01" xmlns:cfid-mr="http://eid.csrc.gov.cn/cn/fid/rpt/mr/2007-09-01" xmlns:cfid-pt="http://eid.csrc.gov.cn/cn/fid/common/pt/2007-09-01" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://eid.csrc.gov.cn/cn/fid/fi/pir/2007-09-01 http://eid.csrc.gov.cn/cn/fid/fi/pir/2007-09-01/cfid-fi-pir-2007-09-01.xsd">
        <cfid-gcd:GongGaoFaBuRiQi >2019-06-10</cfid-gcd:GongGaoFaBuRiQi>
        <cfid-pt:YiWaiBiJiJiaDeZiChanMingXi>
            <cfid-pt:money>人民币</cfid-pt:money>
        </cfid-pt:YiWaiBiJiJiaDeZiChanMingXi>
        <cfid-mr:JiJinJiLiHuoJiJinJinLiXiaoZuJianJie>
            <cfid-mr:JJJLHJJJLXZXingMing >张三</cfid-mr:JJJLHJJJLXZXingMing>
            <cfid-mr:JJJLHJJJLXZRenZhiRiQi >2014-04-21</cfid-mr:JJJLHJJJLXZRenZhiRiQi>
        </cfid-mr:JiJinJiLiHuoJiJinJinLiXiaoZuJianJie>
        <cfid-fgi:TouZiMuBiao >在深入的基本面研究的基础上,精选股价相对于内在价值明显低估的股票进行投资,注重安全边际,为基金份额持有人实现长期稳定的回报。</cfid-fgi:TouZiMuBiao>
        <cfid-fgi:FengXianShouYiTeZheng >本基金为股票型基金,其预期收益水平和预期风险水平高于债券型基金、混合型基金和货币型基金,属于预期风险水平和预期收益水平较高的投资品种。</cfid-fgi:FengXianShouYiTeZheng>
        <cfid-ie:RenGouFeiRenGouFenEQingKuangShuoMing>
            <cfid-ie:RenGouFenEShangXian>1000000.00</cfid-ie:RenGouFenEShangXian>
            <cfid-ie:RenGouFenEShangXianFuHao >&lt;</cfid-ie:RenGouFenEShangXianFuHao>
            <cfid-ie:RenGouFenEXiaXian>0.00</cfid-ie:RenGouFenEXiaXian>
            <cfid-ie:RenGouFenEXiaXianFuHao ></cfid-ie:RenGouFenEXiaXianFuHao>
            <cfid-ie:RenGouFenEFeiLv >0.0120</cfid-ie:RenGouFenEFeiLv>
            <cfid-ie:RenGouFenEFeiLvDanWei >%</cfid-ie:RenGouFenEFeiLvDanWei>
        </cfid-ie:RenGouFeiRenGouFenEQingKuangShuoMing>
        <cfid-ie:JiJinGuanLiFeiDeShouFeiFangShi >管理费收费方式</cfid-ie:JiJinGuanLiFeiDeShouFeiFangShi>
        <cfid-ie:JiJinTuoGuanFeiDeNianFeiLv  >0.0044</cfid-ie:JiJinTuoGuanFeiDeNianFeiLv>
        <cfid-ie:JiJinQiTaFeiYongMingXiDeQingKuangShuoMing>
            <cfid-ie:JiJinQiTaFeiYongMingXiDeFeiYongLeiBie >其他费用</cfid-ie:JiJinQiTaFeiYongMingXiDeFeiYongLeiBie>
            <cfid-ie:JiJinQiTaFeiYongMingXiDeNianFeiLv >0.0044</cfid-ie:JiJinQiTaFeiYongMingXiDeNianFeiLv>
        </cfid-ie:JiJinQiTaFeiYongMingXiDeQingKuangShuoMing>
        <cfid-ie:JiJinYunZuoXiangGuanFeiYongQingKuangBeiZhu ><![CDATA[基金运作相关费用情况备注]]></cfid-ie:JiJinYunZuoXiangGuanFeiYongQingKuangBeiZhu>
    </xbrl>

    html代码如下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            table {
                border-collapse:collapse;
                border: 1px solid #ccc;
                width: 1000px;
                margin: 10px auto;
            }
            td,th {
                padding: 10px 10px;
                border: 1px solid #ccc;
                text-align: justify;
            }
            th{
                background-color: #000066;
                color:#fff;
            }
        </style>
    </head>
    <body>
    <script type="text/javascript">
        function getChildrenArr(arr) {
            var result = [];
            arr.forEach(function(item) {
                if(item.nodeType == 1) {
                    result.push({
                        children: [],
                        name: item.tagName.split(':')[1],
                        value: item.childNodes[0].nodeValue
                    })
                }
            })
            return result;
        }
        
        if(window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }else{// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET","./books.xml",false);
        xmlhttp.send();
        xmlDoc=xmlhttp.responseXML;
        var xbrlTag = xmlDoc.getElementsByTagName('xbrl');
        var tagArr = [].slice.call(xbrlTag[0].childNodes);
        var resultArr = []; // 得到页面展示的数组
        tagArr.forEach(function(item) {
            if(item.nodeType == 1 && item.tagName.toLowerCase().indexOf('cfid-') != -1) { // 元素节点并且包含cfid标签
                if(item.childNodes.length > 1) {
                    var childNodesArr = [].slice.call(item.childNodes).reduce(function(pre,cur) {
                        if(cur.nodeType == 1) {
                            pre.push(cur);
                        }
                        return pre;
                    },[]);
                    resultArr.push({
                        children: getChildrenArr(childNodesArr),
                        name: item.tagName.split(':')[1],
                        value: item.childNodes[0].nodeValue
                    })
                } else {
                    resultArr.push({
                        children: [],
                        name: item.tagName.split(':')[1],
                        value: item.childNodes[0].nodeValue
                    })
                }
            }
        })
    
        var htmlStr = '<table><tr><th>名称</th><th>内容</th></tr>';
        for(var i = 0, len = resultArr.length; i < len; i++) {
            var curItem = resultArr[i];
            
            if(!curItem.children.length) {
                console.log(curItem)
                htmlStr += `<tr class="item">
                                 <td class="title"> ${curItem.name}
                                 </td>
                                  <td class="info">${curItem.value}
                                 </td>
                            </tr>`;
            } else {
                htmlStr += `<tr class="item">
                    <td class="title">${curItem.name}
                    </td>
                    <td class="info">`;
                
                curItem.children.forEach(function(cur) {
                    htmlStr += `<div class="child-item">${ cur.name}: ${cur.value}
                                </div>`;            
                },'');
                htmlStr += `</td></tr>`;
            }
        }
        htmlStr += '</table>'
        var ele  = document.createElement('div');
            ele.innerHTML = htmlStr;
            document.body.appendChild(ele);
    </script>
    </body>
    </html>
  • 相关阅读:
    [GEiv]第七章:着色器 高效GPU渲染方案
    Cocos2d-x 脚本语言Lua介绍
    TestNg依靠先进的采用强制的依赖,并依赖序列的------TestNg依赖于特定的解释(两)
    uboot通过使用U磁盘引导内核RT5350成功
    linux下一个rsync工具和配置
    STM32 模拟I2C (STM32F051)
    Something write in FSE 2014
    ESB (Enterprise Service Bus) 入门
    Spring框架:Spring安全
    “TNS-03505:无法解析名称”问题解决一例
  • 原文地址:https://www.cnblogs.com/moqiutao/p/14005606.html
Copyright © 2011-2022 走看看