我正在試圖用django
從數據中創建xml文件。用django創建嵌套結構xml
下面是數據列表,我得到了:
PAGE PARENT TAG
1 parenttagA tag1
1 parenttagA tag2
1 parenttagB tag3
1 parenttagB tag4
2 parenttagC tag5
2 parenttagC tag6...
...我想打一個xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<TAGS>
<PAGE page="1">
<PARENT parent="parenttagA">
<TAG>tag1</TAG>
<TAG>tag2</TAG>
</PARENT>
<PARENT parent="parenttagB">
<TAG>tag3</TAG>
<TAG>tag4</TAG>
</PARENT>
</PAGE>
<PAGE page="2">
<PARENT parent="parenttagC">
<TAG>tag5</TAG>
<TAG>tag6</TAG>...
</TAGS>
我有for
標籤攻擊的問題,但我無法弄清楚,因爲標籤是嵌套的,「PAGE」和「PARENT」標籤不能重複寫入。我也試着用if
和ifchanged
標籤的組合來解決這個問題。雖然這使我接近我的預期,但當forloop.counter爲2時總是會觸發ifchanged
。另外我還認爲可能有更簡單的解決方案,但我並不知道。
如果對這個問題有一個合理的解決方案,請幫助我。
我凌亂的代碼:
{% for data in datas %}
{% if forloop.counter == 1 %}
<PAGE page="{{data.pagenum}}">
<PARENT parent="{{data.parenttag}}">
<TAG>{{ data.tag }}</TAG>
{% else %}
{% if forloop.revcounter == 1 %}
<TAG>{{ data.tag }}</TAG>
</PARENT>
</PAGE>
{% else %}
{% ifchanged data.pagenum %}
</PAGE>
<PAGE page="{{data.pagenum}}">
<PARENT parent="{{data.parenttag}}">
<TAG>{{ data.tag }}</TAG>
{% else %}
{% ifchanged data.parenttag %}
</PARENT>
<PARENT parent="{{data.parenttag}}">
{% endifchanged %}
<TAG>{{ data.tag }}</TAG>
{% endifchanged %}
{% endif %}
{% endif %}
{% endfor %}