我有这样一个xml
<data>
<B>Head1</B>
<I>Inter1</I>
<I>Inter2</I>
<I>Inter3</I>
<I>Inter4</I>
<I>Inter5</I>
<O>,</O>
<B>Head2</B>
<I>Inter6</I>
<I>Inter7</I>
<I>Inter8</I>
<I>Inter9</I>
<O>,</O>
<O> </O>
</data>
我希望XML看起来像
<data>
<combined>Head1 Inter1 Inter2 Inter3 Inter4 Inter5</combined>,
<combined>Head2 Inter6 Inter7 Inter8 Inter9</combined>
</data>
我试着得到“B”的所有值
for value in mod.getiterator(tag='B'):
print (value.text)
Head1
Head2
for value in mod.getiterator(tag='I'):
print (value.text)
Inter1
Inter2
Inter3
Inter4
Inter5
Inter6
Inter7
Inter8
Inter9
现在,我应该如何将第一个迭代值保存到一个标记中,然后将第二个值保存到different标记中。例如,如何使迭代从标记“B”开始,找到跟随它的所有标记“I”,如果我再次找到标记“B”并将它们全部保存在新标记中,则再次迭代。你知道吗
标签“O”将始终出现在末尾
您可以从
xml.etree
使用ElementTree
模块:结果:
请注意,如果您不确定所有的块都是用逗号分隔的,您只需根据您的文件格式更改条件
if tx == ',':
。您还可以检查tx
何时以'Head'开头,如果seen
不是空的yield
则seen
并清除其内容,否则附加tx
并继续。你知道吗相关问题 更多 >
编程相关推荐