0

したがって、次の 3 つのレベルの XML を取得しました。

app.xml には 4 つのカテゴリ (XML ファイル) が含まれています。各カテゴリには多数のエントリが含まれています。

インクルード部分は現在 Xinclude で行われています。

私のスクリプトは、最初の xml である app.xml を今すぐ取得する Ajax 関数を実行しますが、Xinclude を介して認識しません。明確にするために、アラート「yes」と「app」を受け取りますが、「cat」は受け取りません。console.dir xml に xi:include が表示されますが、ファイルの内容は表示されません。

どういうわけかそれを解析する必要がありますか? 私の Xinclude は機能しませんか、それともより良い方法でインクルードを実行できますか?

script.js

$.ajax({
    type: "GET",
    url: "xml/app.xml",
    dataType: "xml",
    success: function(xml) {
        alert('yes');

        $(xml).find('app').each(function(){

            alert('app');
            var test = $(this);
            console.dirxml(xml);
            $(this).find('category').each(function(){
                alert('cat');
            });
        });
    },

    error: function() {
        alert("The XML File could not be processed correctly.");
    }
});

app.xml

<?xml version="1.0" encoding="UTF-8"?>

<app xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:include href="cat1.xml" parse="xml"/>
    <xi:include href="cat2.xml" parse="xml"/>
    <xi:include href="cat3.xml" parse="xml"/>
    <xi:include href="cat4.xml" parse="xml"/>
</app>

カテゴリの例 - XML

<?xml version="1.0" encoding="UTF-8"?>
<category xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>Title</title>
    <introtext>Introtext introtext introtext introtext</introtext>

    <xi:include href="cat1/entry.xml"/>
</category>

エントリの例 - XML

<?xml version="1.0" encoding="UTF-8"?>
<entry>
    <rubrik>Entry title</rubrik>
    <text>Text text text</text>
    <bild>pic_name</bild>
</entry>
4

1 に答える 1

0

XML は AJAX 要求に対する単なるテキストであるため、元のファイルを要求し、次に xi:includes をループしてそれらの各ファイルを要求する必要があります。

于 2015-06-10T16:08:25.317 に答える