jQuery Ajax 使用 Xinclude 调用 XML

jQuery Ajax calling XML with Xinclude

所以我得到了三个等级XML:

app.xml 包括 4 个类别(XML-文件)。 每个类别都包含一些条目。

包含部分现在使用 Xinclude 完成。

我的脚本运行一个 Ajax 函数,现在获取第一个 xml、app.xml,但无法看穿 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>

XML 只是 AJAX 请求的文本,因此您需要请求原始文件,然后遍历 xi:includes 并请求每个文件,依此类推。