Привет. Я пытаюсь создать таблицы, прочитав XML-файл.Я использую nodejs с Express Framework.используя модули npm xmldom и xmldoc.Мне нужно отобразить эти таблицы данных на странице ejs.
Это моя структура XML-файла
<DataTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file://C:/FRM/xsd/DataTables.xsd" >
<Table name="dt_EdgeCaseHome">
<Header>
<Column name="Username" type="String" />
<Column name="Email" type="String" />
<Column name="Password" type="String" />
</Header>
<Row>
<Value>brian</Value>
<Value>brianf@edge.com</Value>
<Value>qwerty</Value>
</Row>
</Table>
<Table name="dt_EdgeCaseSpectrum">
<Header>
<Column name="AppHeader" type="String" />
<Column name="UserID" type="String" />
<Column name="Service" type="String" />
<Column name="Clients" type="String" />
</Header>
<Row>
<Value>Contract</Value>
<Value>47</Value>
<Value>Agent</Value>
<Value>Exodus</Value>
</Row>
<Row>
<Value>Contract</Value>
<Value>49</Value>
<Value>Agent</Value>
<Value>Prometheus</Value>
</Row>
</Table>
</DataTables>
, и мой ожидаемый результат должен быть
![enter image description here](https://i.stack.imgur.com/AJcid.png)
Это мой текущий код, есть ли лучший подход к этому требованию.также мне нужно отобразить таблицы, созданные из этого скрипта, в модальном окне, которое всплывает при нажатии кнопки, как я могу это сделать?
код:
var xmldoc = require('xmldoc');
var DOMParser = require('xmldom').DOMParser;
var parser = new DOMParser();
var fs = require('fs');
module.exports={
XMLRead: function (){
var data;
//read the Tables.xml
data=fs.readFileSync(__dirname + './Tables.xml','utf8');
// Create your table element
table = document.createElement("Table");
var DtName=document.getElementById("btn_dtname").value;
//parse xml
var dom = parser.parseFromString(data);
var tables = dom.getElementsByTagName("Table").getAttribute("name");
tables.forEach(function(tblName){
if(tblName==DtName){
var cols = dom.getElementsByTagName("Header").getChildNodes();
table = document.createElement("tr");
cols.forEach(function(header){
var Headers=header.getAttribute("name");
table = document.createElement("th").value=Headers;
table = document.createElement("</th>")
}
// document.createElement("</tr>");
var rowCount = tblName.getElementsByTagName("Row");
rowCount.forEach(function(r){
// document.createElement("<tr>");
var count = r.getChildNodes();
count.forEach(function(r1){
var colval=r1.getAttribute("text");
// document.createElement("<td>").value=colval;
// document.createElement("</td>");
}
// document.createElement("</tr>");
}
}
}
}