将数据从xml文件拉到html表

时间:2017-04-03 11:09:06

标签: javascript html xml parsing web-scraping

早上好/下午

我是一个完整的编码新手,我在网上找到了一个基本代码并根据我的需要进行了修改。

我有一个每天刷新价格和内容的XML Feed,我想要做的是创建一个包含描述,图片,价格和“在这里购买”链接的表格。

我已设法做到这一点,但它将所有25000件以上的物品拉出来,您可以想象这需要一段时间才能打开所有图片!

我希望能够做的是指定一个特定的项目来拉动表格。

我需要工作的页面是http://www.kimberskitchen.co.uk/full-catalogue-of-products.html我要做的是修改我的代码,以便我可以选择一个产品并只显示该行。

html代码是:

<!DOCTYPE html>
<html>
    <style>
        table,
        th,
        td {
            border: 5px solid black;
            border-collapse: collapse;
        }
        th,
        td {
            padding: 5px;
        }
    </style>
    <body>
        <table id="demo"></table>
        <script>
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    myFunction(this);
                }
            };
            xmlhttp.open("GET", "http://www.kimberskitchen.co.uk/files/theme/datafeed_274439.xml", true);
            xmlhttp.send();
            function myFunction(xml) {
                var i;
                var xmlDoc = xml.responseXML;
                var table = "<tr><th><H1>name</h1></th><th><h1>Price (£)</h1></th><th>    <h1>image</h1></th></tr>";
                var text, parser, xmlDoc;
                var x = xmlDoc.getElementsByTagName("prod");
                for (i = 0; i < x.length; i++) {
                    table += "<tr><td>" +
                        x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue +
                        "</td><td>" +
                        x[i].getElementsByTagName("buynow")[0].childNodes[0].nodeValue +
                        "</td><td align=center><a href = " +
                        x[i].getElementsByTagName("awTrack")[0].childNodes[0].nodeValue +
                        "  </a> Click here to buy product</td></tr>";
                }
                document.getElementById("demo").innerHTML = table;
            }
        </script>
    </body>
</html>

我不知道如何修改这个,感谢任何帮助。

0 个答案:

没有答案