【问题标题】:Create a dynamic html table and populate it with xml data using javascript创建一个动态 html 表并使用 javascript 用 xml 数据填充它
【发布时间】:2019-02-17 23:08:08
【问题描述】:

我需要创建一个动态数据表,通过读取 xml 来显示数据

这是我的 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_EdgeCaseRoute">
        <Header>
            <Column name="Username" type="String" />
            <Column name="Password" type="String" />
        </Header>
        <Row>
            <Value>Carl</Value>
            <Value>1qaz2wsx</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>

我能够使用以下代码读取 xml 并将数据获取到 json

var convert = require('xml-js');
var xml = require('fs').readFileSync('./testscenario.xml', 'utf8');

var result1 = convert.xml2json(xml, {compact: true, spaces: 4});

但是,我不确定如何继续休息。

我需要做的是根据该数据创建一个表,并用列名和行值填充表。

构建此表的最佳方法是什么?

【问题讨论】:

    标签: javascript jquery node.js ejs


    【解决方案1】:

    让客户端用jquery来做?那么就不需要JSON了

    var 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_EdgeCaseRoute">
            <Header>
                <Column name="Username" type="String" />
                <Column name="Password" type="String" />
            </Header>
            <Row>
                <Value>Carl</Value>
                <Value>1qaz2wsx</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>`
    var $xml = $(xml);
    $xml.find("Table").each(function() {
      console.log($(this).attr("name"));
    });
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

    • 使用此代码它只显示表名。我需要做的是获取每个
      标记中的列名和值,并为该数据创建一个表并将其显示在我的网页中。我正在使用带有 express 框架的 nodeJS 和 ejs 作为我的视图引擎
    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 2021-09-03
    • 2018-01-11
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多