QML XmlListModel возвращает 0 с вложенными тегами - PullRequest
0 голосов
/ 20 мая 2019

У меня есть несколько 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) и просто распечатать идентификаторы в консоли ...

1 Ответ

0 голосов
/ 20 мая 2019

ОК, я понял.

При просмотре содержимого страницы (щелчок правой кнопкой мыши по кнопке → Проверка элемента ) на вкладке инспектора тег Gastro выглядит следующим образом:

<Gastro xmlns="urn:schemas-etourist:Gastro">

Это используется для моего пространства имен (я уже подозревал, что оно должно было что-то делать с пространством имен):

namespaceDeclarations: "declare default element namespace \"urn:schemas-etourist:Gastro\";"

Теперь я получаю все свои элементы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...