以表格格式显示XML和JSON中的数据

编程入门 行业动态 更新时间:2024-10-24 04:47:15
本文介绍了以表格格式显示XML和JSON中的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我希望以表格的形式显示我们从XML和JSON文件中检索的数据: jsfiddle/daksh844/hrw85ck5/

I want to display data that we retrieve from XML and JSON files in the form of a table as featured on this fiddle: jsfiddle/daksh844/hrw85ck5/

布局应与小提琴上的布局完全相同。我坚持在表格中获得这种布局。请分享两种情况(XML和JSON)的见解。

The layout should be exactly the same as on the fiddle. I'm stuck on getting this layout in a table. Please share the insight for both cases (XML and JSON).

我尝试过这个 jsfiddle/daksh844/jgmw6we4/4/ 但无法以完全相同的布局显示数据。

I've tried working on this jsfiddle/daksh844/jgmw6we4/4/ but unable to display the data in exact same layout.

数据如下:

XML:

<ClientInvestmentInstructionList> <ClientInvestmentInstruction> <InstructingOrgName>Sample</InstructingOrgName> <InstructingOrgCode>A1</InstructingOrgCode> <PortfolioList> <Portfolio> <PortfolioName>Sample A-1</PortfolioName> <PortfolioCode>Child</PortfolioCode> <AuthorizeFundList> <Fund> <FundName>Sample A-1</FundName> <FundCode>Sub-child</FundCode> </Fund> <Fund> <FundName>Sample A-1</FundName> <FundCode>Sub-child 2</FundCode> </Fund> </AuthorizeFundList> </Portfolio> <Portfolio> <PortfolioName>Sample A-1</PortfolioName> <PortfolioCode>Child 2</PortfolioCode> <AuthorizeFundList> <Fund> <FundName>Sample A-1</FundName> <FundCode>Sub-child 3</FundCode> </Fund> <Fund> <FundName>Sample A-1</FundName> <FundCode>Sub-child 4</FundCode> </Fund><Fund> <FundName>Sample A-1</FundName> <FundCode>Sub-child 5</FundCode> </Fund> </AuthorizeFundList> </Portfolio> <Portfolio> <PortfolioName>Sample A-1</PortfolioName> <PortfolioCode>Child 3</PortfolioCode> </Portfolio> </PortfolioList> </ClientInvestmentInstruction> <ClientInvestmentInstruction> <InstructingOrgName>Sample</InstructingOrgName> <InstructingOrgCode>A-2</InstructingOrgCode> <PortfolioList> <Portfolio> <PortfolioName>Sample A-2</PortfolioName> <PortfolioCode>Child</PortfolioCode> <AuthorizeFundList> <Fund> <FundName>Sample A-2</FundName> <FundCode>Sub-child</FundCode> </Fund> <Fund> <FundName>Sample A-2</FundName> <FundCode>Sub-child 2</FundCode> </Fund> </AuthorizeFundList> </Portfolio> <Portfolio> <PortfolioName>Sample A-2</PortfolioName> <PortfolioCode>Child 2</PortfolioCode> <AuthorizeFundList> <Fund> <FundName>Sample A-2</FundName> <FundCode>Sub-child 3</FundCode> </Fund> <Fund> <FundName>Sample A-2</FundName> <FundCode>Sub-child 4</FundCode> </Fund> </AuthorizeFundList> </Portfolio> </PortfolioList> </ClientInvestmentInstruction> </ClientInvestmentInstructionList>

JSON:

{"ClientInvestmentInstructionList": { "ClientInvestmentInstruction": [ { "InstructingOrgName": "Sample", "InstructingOrgCode": "A1", "PortfolioList": { "Portfolio": [ { "PortfolioName": "Sample A-1", "PortfolioCode": "Child", "AuthorizeFundList": { "Fund": [ { "FundName": "Sample A-1", "FundCode": "Sub-child" }, { "FundName": "Sample A-1", "FundCode": "Sub-child 2" } ] } }, { "PortfolioName": "Sample A-1", "PortfolioCode": "Child 2", "AuthorizeFundList": { "Fund": [ { "FundName": "Sample A-1", "FundCode": "Sub-child 3" }, { "FundName": "Sample A-1", "FundCode": "Sub-child 4" }, { "FundName": "Sample A-1", "FundCode": "Sub-child 5" } ] } }, { "PortfolioName": "Sample A-1", "PortfolioCode": "Child 3" } ] } }, { "InstructingOrgName": "Sample", "InstructingOrgCode": "A-2", "PortfolioList": { "Portfolio": [ { "PortfolioName": "Sample A-2", "PortfolioCode": "Child", "AuthorizeFundList": { "Fund": [ { "FundName": "Sample A-2", "FundCode": "Sub-child" }, { "FundName": "Sample A-2", "FundCode": "Sub-child 2" } ] } }, { "PortfolioName": "Sample A-2", "PortfolioCode": "Child 2", "AuthorizeFundList": { "Fund": [ { "FundName": "Sample A-2", "FundCode": "Sub-child 3" }, { "FundName": "Sample A-2", "FundCode": "Sub-child 4" } ] } } ] } } ] }

推荐答案

怎么样?

/* XML parsed structure, equivalent of xhr.responseXML */ var structure = new DOMParser().parseFromString('<ClientInvestmentInstructionList>\ <ClientInvestmentInstruction>\ <InstructingOrgName>Sample</InstructingOrgName>\ <InstructingOrgCode>A1</InstructingOrgCode>\ <PortfolioList>\ <Portfolio>\ <PortfolioName>Sample A-1</PortfolioName>\ <PortfolioCode>Child</PortfolioCode>\ <AuthorizeFundList>\ <Fund>\ <FundName>Sample A-1</FundName>\ <FundCode>Sub-child</FundCode>\ </Fund>\ <Fund>\ <FundName>Sample A-1</FundName>\ <FundCode>Sub-child 2</FundCode>\ </Fund>\ </AuthorizeFundList>\ </Portfolio>\ \ <Portfolio>\ <PortfolioName>Sample A-1</PortfolioName>\ <PortfolioCode>Child 2</PortfolioCode>\ <AuthorizeFundList>\ <Fund>\ <FundName>Sample A-1</FundName>\ <FundCode>Sub-child 3</FundCode>\ </Fund>\ <Fund>\ <FundName>Sample A-1</FundName>\ <FundCode>Sub-child 4</FundCode>\ </Fund><Fund>\ <FundName>Sample A-1</FundName>\ <FundCode>Sub-child 5</FundCode>\ </Fund>\ </AuthorizeFundList>\ </Portfolio>\ <Portfolio>\ <PortfolioName>Sample A-1</PortfolioName>\ <PortfolioCode>Child 3</PortfolioCode>\ </Portfolio>\ </PortfolioList>\ </ClientInvestmentInstruction>\ \ <ClientInvestmentInstruction>\ <InstructingOrgName>Sample</InstructingOrgName>\ <InstructingOrgCode>A-2</InstructingOrgCode>\ <PortfolioList>\ <Portfolio>\ <PortfolioName>Sample A-2</PortfolioName>\ <PortfolioCode>Child</PortfolioCode>\ <AuthorizeFundList>\ <Fund>\ <FundName>Sample A-2</FundName>\ <FundCode>Sub-child</FundCode>\ </Fund>\ <Fund>\ <FundName>Sample A-2</FundName>\ <FundCode>Sub-child 2</FundCode>\ </Fund>\ </AuthorizeFundList>\ </Portfolio>\ <Portfolio>\ <PortfolioName>Sample A-2</PortfolioName>\ <PortfolioCode>Child 2</PortfolioCode>\ <AuthorizeFundList>\ <Fund>\ <FundName>Sample A-2</FundName>\ <FundCode>Sub-child 3</FundCode>\ </Fund>\ <Fund>\ <FundName>Sample A-2</FundName>\ <FundCode>Sub-child 4</FundCode>\ </Fund>\ </AuthorizeFundList>\ </Portfolio>\ </PortfolioList>\ </ClientInvestmentInstruction>\ </ClientInvestmentInstructionList>', "text/xml"); /* Get text of XML node */ function getText(node) { return node.childNodes[0].nodeValue; } /* Initial HTML buffer */ var htmlBuffer = "<table>\ <thead><tr>\ <td>Sample A</td>\ <td>Sample B</td> \ <td>Sample C</td>\ </tr></thead><tbody>"; /* Iterate each client investment instruction */ for (var instruction of structure.getElementsByTagName('ClientInvestmentInstruction')) { var headerDeclared = false; /* Iterate each portfolio */ for (var portfolio of instruction.getElementsByTagName('Portfolio')) { htmlBuffer += "<tr>"; /* Declare the Sample A data */ htmlBuffer += "<td>"; /* * If InstructingOrgName and code aren't declared, * declare both then */ if (!headerDeclared) { htmlBuffer += getText(instruction.getElementsByTagName('InstructingOrgName')[0]) + " " + getText(instruction.getElementsByTagName('InstructingOrgCode')[0]); headerDeclared = true; } htmlBuffer += "</td>"; /* Declare Sample B data */ htmlBuffer += "<td>" + getText(portfolio.getElementsByTagName('PortfolioName')[0]) + " " + getText(portfolio.getElementsByTagName('PortfolioCode')[0]) + "</td>"; /* Get funds */ var FundList = portfolio.getElementsByTagName('Fund'); /* Check if any funds exist */ if (FundList.length) { /* Iterate each fund */ for (var i = 0, fund; fund = FundList[i]; i++) { /* Declare fund in Sample C data */ htmlBuffer += (i > 0 ? "</tr><tr><td></td><td></td>" : "") + "<td>" htmlBuffer += getText(fund.getElementsByTagName('FundName')[0]) + " " + getText(fund.getElementsByTagName('FundCode')[0]); htmlBuffer += "</td>"; } } /* Leave Sample C empty */ else htmlBuffer += "<td></td>"; /* Portfolio/fund end */ htmlBuffer += "</tr>"; } htmlBuffer += "<tr><td></td><td></td><td></td></tr>"; } htmlBuffer += "</tbody>"; // For tests document.body.innerHTML = htmlBuffer;

table, thead, tr, td { border: 1px solid black; border-collapse: collapse; } th, td { padding: 15px; } thead { background-color: #BBB; }

更多推荐

以表格格式显示XML和JSON中的数据

本文发布于:2023-10-12 17:21:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1485369.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表格   格式   数据   XML   JSON

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!