как создать InputStream из Документа или Узла

Прежде всего,

Вы фильтруете данные дважды. В этом нет необходимости, потому что это пустая трата времени и памяти.

class JobsListAPIView(generics.ListAPIView):
    serializer_class = JobListSerialzer
    # pagination_class = ListLimitOffsetPagination
    permission_classes = [UserIsAuthenticated]

    def get_queryset(self, *args, **kwargs):
        # print('self.request.auth', self.request.auth.application.user.userprofile.user_company.id)


        query = self.request.data.get("query")
        print('query: ', query)

        if query:
            qs = Jobs.objects.exclude(job_is_deleted = True).filter(job_status=query, job_company = self.request.auth.application.company)
       else:
            qs = Jobs.objects.exclude(job_is_deleted = True).filter(job_company = self.request.auth.application.company
       )

        return qs
26
задан Mike Pone 14 May 2009 в 18:47
поделиться

3 ответа

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Source xmlSource = new DOMSource(doc);
Result outputTarget = new StreamResult(outputStream);
TransformerFactory.newInstance().newTransformer().transform(xmlSource, outputTarget);
InputStream is = new ByteArrayInputStream(outputStream.toByteArray());
49
ответ дан 28 November 2019 в 06:44
поделиться

Один из способов сделать это: адаптировать документ к источнику с DOMSource . Создайте StreamResult , чтобы адаптировать ByteArrayOutputStream . Используйте Transformer из TransformerFactory.newTransformer для копирования данных. Получите свой байт [] и выполните поток с помощью ByteArrayInputStream .

Объединение кода осталось в качестве упражнения.

2
ответ дан 28 November 2019 в 06:44
поделиться

Если вы используете Java без сторонних библиотек, вы можете создать InputStream , используя приведенный ниже код:

/*
 * Convert a w3c dom node to a InputStream
 */
private InputStream nodeToInputStream(Node node) throws TransformerException {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    Result outputTarget = new StreamResult(outputStream);
    Transformer t = TransformerFactory.newInstance().newTransformer();
    t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
    t.transform(new DOMSource(node), outputTarget);
    return new ByteArrayInputStream(outputStream.toByteArray());
}
5
ответ дан 28 November 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: