javascript - Adakah terdapat cara untuk menukar html ke json?
高洛峰
高洛峰 2017-05-19 10:42:37
0
6
723

Saya baru-baru ini menerima kerja, yang kelihatan sangat biasa, saya menggunakan ajax untuk membaca artikel dan kemudian memuatkan artikel secara dinamik apabila penyemak imbas menatal Tetapi di sini datang masalah antara muka sumber artikel disediakan dalam XML, dan sumber artikel bahagian hadapan tidak sama. Di bawah nama domain, ini melibatkan isu silang domain XML, tetapi sumber artikel menyediakan sistem merangkak yang boleh menggunakan xslt, supaya XML boleh ditukar kepada html dan kemudian diakses merentas domain? Atau bolehkah xslt menukar terus xml kepada json untuk akses merentas domain?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(6)
Ty80
  1. Minta pihak lain membenarkan akses merentas domain

  2. Tulis perkhidmatan pada bahagian belakang anda sendiri untuk menangkapnya, dan kemudian bahagian hadapan membaca dan memaparkannya dari pelayan anda sendiri

左手右手慢动作

Terdapat postHtml di bahagian nod

Jika anda tidak tahu bahagian penyemak imbas, anda boleh mencarinya di github

滿天的星座

Pembina dan eksport (boleh ditukar ke kelas)

function XmlToJson() {}
XmlToJson.prototype.setXml = function(xml) {
    if (xml && typeof xml == "string") {
        this.xml = document.createElement("p");
        this.xml.innerHTML = xml;
        this.xml = this.xml.getElementsByTagName("*")[0];
    } else if (typeof xml == "object") {
        this.xml = xml;
    }
};
XmlToJson.prototype.getXml = function() {
    return this.xml;
};
XmlToJson.prototype.parse = function(xml) {
    this.setXml(xml);
    return this.convert(this.xml);
};
XmlToJson.prototype.convert = function(xml) {
    if (xml.nodeType != 1) {
        return null;
    }
    var obj = {};
    obj.xtype = xml.nodeName.toLowerCase();
    var nodeValue = (xml.textContent || "").replace(/(\r|\n)/g, "").replace(/^\s+|\s+$/g, "");

    if (nodeValue && xml.childNodes.length == 1) {
        obj.text = nodeValue;
    }
    if (xml.attributes.length > 0) {
        for (var j = 0; j < xml.attributes.length; j++) {
            var attribute = xml.attributes.item(j);
            obj[attribute.nodeName] = attribute.nodeValue;
        }
    }
    if (xml.childNodes.length > 0) {
        var items = [];
        for (var i = 0; i < xml.childNodes.length; i++) {
            var node = xml.childNodes.item(i);
            var item = this.convert(node);
            if (item) {
                items.push(item);
            }
        }
        if (items.length > 0) {
            obj.items = items;
        }
    }
    return obj;
};
export { XmlToJson };

rentetan templat xml

let xml = `<viewport id="menuPane" layout="border">
    <panel region="center" border="0" layout="border">
        <tbar>
            <toolbar text="XXXX">
                <menu>
                    <text text="11">
                    </text>
                    <text text="22">
                    </text>
                    <text text="33">
                    </text>
                </menu>
            </toolbar>
            <toolbar text="XXXX">
                <menu>
                    <text text="44">
                    </text>
                    <text text="55">
                    </text>
                    <menu>
                        <text text="6 6">
                        </text>
                    </menu>
                    <text text="77">
                    </text>
                </menu>
            </toolbar>
        </tbar>
    </panel>
</viewport>`;

Panggil kaedah untuk menukar xml kepada json dan keluarkannya ke konsol untuk melihat

import { XmlToJson } from './xmlToJson.js';
let xmlParser = new XmlToJson();
let json = xmlParser.parse(xml);
console.log(JSON.stringify(json));//输出xml转换后的json
给我你的怀抱

Pelayar Ajax merentas domain tiada kaitan dengan format XML atau JSON.

Apa yang anda perlukan ialah penyelesaian merentas domain Ajax.

黄舟

Saya tidak tahu sama ada terdapat sesuatu yang tidak kena dengan pemahaman saya Bukankah keperluan penyoal adalah serupa dengan keperluan crawler? Gunakan perangkak untuk merangkak ke belakang dan kemudian menghuraikannya ke meja depan? Saya tidak tahu sama ada saya salah faham atau ia juga boleh dicapai menggunakan perangkak

给我你的怀抱

Anda boleh menggunakan iframe untuk membenamkan halaman web dalam halaman web

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!