Вывести элемент из XML через tikxml + retrofit (Android Stdio Java)

Нужна помощь, как вывести один из XML-элементов? Есть XML такого вида:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<incomingInvoiceDtoes>
  <document>
    <id>fbfef242-6784-4d07-ba91-b7f332fae634</id>
    <transportInvoiceNumber/>
    <incomingDate>2024-01-10</incomingDate>
    <useDefaultDocumentTime>false</useDefaultDocumentTime>
    <dueDate>null</dueDate>
    <supplier>01c6d7c0-8777-4a51-a3a3-8a4685cb92a8</supplier>
    <defaultStore>1239d270-1bbe-f64f-b7ea-5f00518ef508</defaultStore>
    <invoice/>
    <dateIncoming>2024-01-10T09:00:00</dateIncoming>
    <documentNumber>0001</documentNumber>
    <status>NEW</status>
    <distributionAlgorithm>DISTRIBUTION_BY_AMOUNT</distributionAlgorithm>
    <items>
      <item>
        <isAdditionalExpense>false</isAdditionalExpense>
        <actualAmount>5.000</actualAmount>
        <store>1239d270-1bbe-f64f-b7ea-5f00518ef508</store>
        <code>00011</code>
        <price>0.000000000</price>
        <priceWithoutVat>0.000000000</priceWithoutVat>
        <sum>0.00</sum>
        <vatPercent>0.000000000</vatPercent>
        <vatSum>0.00</vatSum>
        <discountSum>0.00</discountSum>
        <amountUnit>7ba81c3a-8de5-8f9d-fb9f-e39efcbc57cc</amountUnit>
        <num>1</num>
        <product>7ba94d5b-504c-4b22-a7bd-d87c130859dc</product>
        <productArticle>00011</productArticle>
        <amount>5.000</amount>
      </item>
    </items>
  </document>
  <document>
    <id>19b091c6-a239-4f04-a6b1-5d5055345882</id>
    <transportInvoiceNumber/>
    <incomingDate>2024-01-10</incomingDate>
    <useDefaultDocumentTime>false</useDefaultDocumentTime>
    <dueDate>null</dueDate>
    <supplier>01c6d7c0-8777-4a51-a3a3-8a4685cb92a8</supplier>
    <defaultStore>1239d270-1bbe-f64f-b7ea-5f00518ef508</defaultStore>
    <invoice/>
    <dateIncoming>2024-01-10T09:00:00</dateIncoming>
    <documentNumber>0002</documentNumber>
    <status>PROCESSED</status>
    <distributionAlgorithm>DISTRIBUTION_BY_AMOUNT</distributionAlgorithm>
    <items>
      <item>
        <isAdditionalExpense>false</isAdditionalExpense>
        <actualAmount>1.000</actualAmount>
        <store>1239d270-1bbe-f64f-b7ea-5f00518ef508</store>
        <code>00012</code>
        <price>150.000000000</price>
        <priceWithoutVat>150.000000000</priceWithoutVat>
        <sum>150.00</sum>
        <vatPercent>0.000000000</vatPercent>
        <vatSum>0.00</vatSum>
        <discountSum>0.00</discountSum>
        <amountUnit>7ba81c3a-8de5-8f9d-fb9f-e39efcbc57cc</amountUnit>
        <num>1</num>
        <product>4d671351-bc2b-4565-a662-f1454358d400</product>
        <productArticle>00012</productArticle>
        <amount>1.000</amount>
      </item>
    </items>
  </document>
</incomingInvoiceDtoes>

IncomingInvoiceDtoes.java

@Xml
public class IncomingInvoiceDtoes {

    @Attribute(name = "document")
    String incomingInvoiceDtoes;
    @PropertyElement(name = "status")
    String status;

    public String getStatus() {
        return status;
    }
}

Request.java

public interface Request {
    @GET("documents/export/incomingInvoice")
    Call<IncomingInvoiceDtoes> getIncomingInvoice (@Query("key") String token, @Query("from") String dateFrom, @Query("to") String dateTo);
}

MainActivity.java

                        Retrofit retrofit = new Retrofit.Builder().
                        baseUrl("https://"+ host + "/resto/api/").
                        addConverterFactory(TikXmlConverterFactory.create(new TikXml.Builder().exceptionOnUnreadXml(false).build())).
                        build();

                Request requestIncomingInvoice = retrofit.create(Request.class);
                requestIncomingInvoice.getIncomingInvoice(token,"2024-01-10", "2024-01-10").enqueue(new Callback<IncomingInvoiceDtoes>() {
                    @SuppressLint("SetTextI18n")
                    @Override
                    public void onResponse(@NonNull Call<IncomingInvoiceDtoes> call, @NonNull Response<IncomingInvoiceDtoes> response) {
                        if (response.isSuccessful()) {
                            assert response.body() != null;
                            textView.setText(response.body().getStatus());

                        } else {
                            textView.setText(" =((( ");
                        }
                    }

                    @Override
                    public void onFailure(@NonNull Call<IncomingInvoiceDtoes> call, @NonNull Throwable t) {
                        textView.setText(t.toString());
                    }
                });

Все зависимости подключены и всё работает, но выводит пустое поле(null). И вот хочу вывести элемент status. Понимаю, что неправильно вывожу в строке textView.setText(response.body().getStatus()); Подскажите, как правильно это сделать?


Ответы (0 шт):