簡體   English   中英

從Python中的嵌套編號列表生成XML

[英]Generating XML from nested numbered lists in Python

我有一個嵌套的編號列表結構,如下所示:

1.1-“詹姆斯”
1.1.1-“驢友”
1.2.1-“鮑勃”

將其轉換為如下所示的XML結構的最佳/最快方法是什么:

> <1>  
>    <1><james/>
>       <1><alice/></1>
>       <2><bob/></2>
>    </1>  
> </1>  

如果編號列表的深度僅為3,則這非常容易,但是在這種情況下,它是未知的,可能多達6。我很確定我需要創建一個遞歸自引用函數,但是需要一種將每個元素在XML結構中的位置,此刻我仍然堅持。

這是一個小的遞歸函數,它將列表轉換為XML字符串。 添加填充支持或限制深度很簡單,但是我會留給您。

def xml(it, depth=1):
 s = ''
 for k, v in enumerate(it):
  s += '<%d>' % (k+1)
  if isinstance(v, list):
   s += xml(v, depth+1)
  else:
    s += str(v)
  s += "</%d>\n" % (k+1)
 return s

這是用法和輸出示例。

>>> data = ['Names', ['Boy names'], ['Girl Names', ['J-Names', ['Jill', 'Jen']]]]
>>> print xml(data)
'<1>Names</1>
<2><1>Boy names</1>
</2>
<3><1>Girl Names</1>
<2><1>J-Names</1>
<2><1>Jill</1>
<2>Jen</2>
</2>
</2>
</3>'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM