Rumah  >  Soal Jawab  >  teks badan

javascript - Adakah terdapat cara untuk menukar html ke json?

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?

高洛峰高洛峰2711 hari yang lalu700

membalas semua(6)saya akan balas

  • PHP中文网

    PHP中文网2017-05-19 10:44:37

    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

    balas
    0
  • ringa_lee

    ringa_lee2017-05-19 10:44:37

    Terdapat postHtml di bahagian nod

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

    balas
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:44:37

    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

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:44:37

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

    Apa yang anda perlukan ialah penyelesaian merentas domain Ajax.

    balas
    0
  • 黄舟

    黄舟2017-05-19 10:44:37

    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

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:44:37

    Anda boleh menggunakan iframe untuk membenamkan halaman web dalam halaman web

    balas
    0
  • Batalbalas