擅长:python、mysql、java
<p>您确实应该使用xml解析器来完成此操作,但要回答您的问题:</p>
<pre><code>import re
def next_tag(s, tag):
i = -1
while True:
try:
i = s.index(tag, i+1)
except ValueError:
return
yield i
a = "<list><list-item>First level<list><list-item>Second level</list-item></list></list-item></list>"
a = a.replace("<list-item>", "* ")
for LEVEL, ind in enumerate(next_tag(a, "<list>")):
a = re.sub("<list>", "\n" + LEVEL * "\t", a, 1)
a = a.replace("</list-item>", "")
a = a.replace("</list>", "")
print a
</code></pre>
<p>这对您的示例有效,<strong>仅适用于您的示例</strong>。使用XML解析器。您可以使用<code>xml.dom.minidom</code>(它包含在Python中(至少2.7),无需下载任何内容):</p>
^{pr2}$
<p>输出:</p>
<pre><code>* First level
* Second level
* Second level 2
* Third level
</code></pre>