Вывести элемент из 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()); Подскажите, как правильно это сделать?