Python Django REST XMLParser()-无法分析项列表
我正在尝试使用Django REST XMLParser解析项目列表。解析器将项列表视为单个项。以下是XML:Python Django REST XMLParser()-无法分析项列表,python,django,xml-parsing,django-rest-framework,Python,Django,Xml Parsing,Django Rest Framework,我正在尝试使用Django REST XMLParser解析项目列表。解析器将项列表视为单个项。以下是XML: XML = """<?xml version="1.0" encoding="UTF-8"?> <root> <item> <ID>item_1</ID> <Descriptio
XML = """<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>
<ID>item_1</ID>
<Description>first item</Description>
</item>
<item>
<ID>item_2</ID>
<Description>second item</Description>
</item>
</root>
"""
这将返回以下json:
{'item': {'ID': 'item_2', 'Description': 'second item'}}
看来XMLParser()正在写入列表项1,并返回列表项2。根据上述代码,我希望:
[{'item': {'ID': 'item_1', 'Description': 'first item'}}, {'item': {'ID': 'item_2', 'Description': 'second item'}}]
从源代码来看,我认为您需要将
更改为
。标签名称似乎是硬编码的:
更新以回应您的评论:
DRF完成的xml解析/呈现是序列化的一部分。它可能不是OXM(对象XML映射)。请看一看-您应该使用呈现程序创建xml,稍后使用解析器进行解析
警告:我没有使用DRF的XML部分,我只是在阅读它的代码。可能有一个bug:如果是真的,这是代表django rest framework XML为我的应用程序(解析b2mml XML)所做的一个重大假设,'item'标记是,还有许多其他应用程序不会使用名为“list item”的标记。
[{'item': {'ID': 'item_1', 'Description': 'first item'}}, {'item': {'ID': 'item_2', 'Description': 'second item'}}]