gpt4 book ai didi

javascript - 以表格格式显示来自 XML 和 JSON 的数据

转载 作者:行者123 更新时间:2023-11-30 00:04:30 25 4
gpt4 key购买 nike

我想以表格的形式显示我们从 XML 和 JSON 文件中检索到的数据,如本 fiddle 中的特色:https://jsfiddle.net/daksh844/hrw85ck5/

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

我试过处理这个 https://jsfiddle.net/daksh844/jgmw6we4/4/但无法以完全相同的布局显示数据。

数据如下:

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;
}

关于javascript - 以表格格式显示来自 XML 和 JSON 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39038595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com