擅长:python、mysql、java
<p>这听起来确实像是<a href="http://en.wikipedia.org/wiki/XSLT" rel="nofollow"><em>xslt transformation</em></a>的工作,但这里有一个特定于python的方法。在</p>
<p>每查找一个元素。在循环目标之后,将一个新的<code>target</code>项附加到<code>product</code>中。在</p>
<p>使用<a href="http://lxml.de/" rel="nofollow">^{<cd6>}</a>实现:</p>
<pre><code>from lxml import etree
data = """
<products>
<product>
<id>1</id>
<other>y</other>
<notarget>x</notarget>
<target>num1</target>
<target>num2</target>
<target>num3</target>
</product>
</products>
"""
root = etree.fromstring(data)
for product in root.iterfind('product'):
text = []
for target in product.iterfind('target'):
text.append(target.text)
product.remove(target)
if text:
new_target = etree.Element('target')
new_target.text = ','.join(text)
product.append(new_target)
print etree.tostring(root)
</code></pre>
<p>印刷品:</p>
^{pr2}$
<p>如您所见,它适用于您提供的输入。在</p>