我有多个XML URL,我想解析它们并将这些数据用于我的前者应用程序。
我已经可以将其用于此XML文件:
<Categories>
<Category Name="CA" CategoryID="1"/>
<Category Name="CB" CategoryID="2"/>
<Category Name="CC" CategoryID="3"/>
</Categories>
为此工作的QML代码:
XmlListModel {
id : categories
source : xmlURL;
query: "/Categories/Category"
XmlRole { name: "id"; query: "string(@CategoryID)" }
XmlRole { name: "name"; query: "string(@Name)" }
}
现在我对此尝试了相同的操作:
<Gastros>
<Gastro GastroID="1" CreatedBy="528">
<Tag1>100</Tag1>
<Tag2>100</Tag2>
</Gastro>
<Gastro GastroID="2" CreatedBy="333">
<Tag1>100</Tag1>
<Tag2>100</Tag2>
</Gastro>
</Gastros>
这是我的QML代码:
XmlListModel {
id : gastronomyList
source : xmlURL
query: "/Gastros/Gastro"
onStatusChanged : {
console.log("Status GastroList: " + status);
if (status === XmlListModel.Ready) {
console.log("GastroList: " + count);
for (var i = 0; i < count; i++) {
console.log(get(i).id);
console.log(get(i).createdBy);
}
}
}
XmlRole { name: "id"; query: "string(@GastroID)" }
XmlRole { name: "createdBy"; query: "string(@CreatedBy)" }
}
在这种情况下,计数始终为0。
第一步,我想找回所有元素(在本例2中),然后在控制台中打印ID ...
答案 0 :(得分:-1)
好,我知道了。
在检查器选项卡中查看页面内容(右键单击→检查元素)时,Gastro标签如下所示:
<Gastro xmlns="urn:schemas-etourist:Gastro">
这用于我的命名空间(我已经怀疑它必须对命名空间做一些事情):
namespaceDeclarations: "declare default element namespace \"urn:schemas-etourist:Gastro\";"
现在我得到了所有元素:)