したがって、次の 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>