【发布时间】:2015-11-10 13:24:38
【问题描述】:
我正在解析如下所示的 XML 数据:
<title-group><article-title>Leucine to proline substitution by SNP at position 197 in Caspase-9 gene expression leads to neuroblastoma: a bioinformatics analysis</article-title></title-group>
有时虽然里面有斜体标签:
<title-group><article-title><italic>Interferon regulatory factor 5</italic> genetic variants are associated with cardiovascular disease in patients with rheumatoid arthritis</article-title></title-group>
以下python代码返回一个正确连接的标题字符串,但前提是斜体标签不在标题的开头(如上面的代码):
#Get titles
for node in tree.iter('title-group'):
for subnode in node.iter('article-title'):
try:
title = remove_control_characters(subnode.text)
if len(title) == 0:
for subsubnode in node.iter('italic'):
italic = subsubnode.text
tail = remove_control_characters(subsubnode.tail)
title += italic + tail
title = str(title)
break
except:
continue
for subsubnode in node.iter('italic'):
italic = subsubnode.text
tail = remove_control_characters(subsubnode.tail)
title += italic + tail
title = str(title)
当斜体标记位于字符串的开头时,不返回任何内容。
有没有更简单的方法(不包括lxml)可以使用?或者,如果您可以建议更改 Python 代码,那也将不胜感激。欢迎提出建议,祝您有愉快的一天。
编辑 [已解决]
#Get titles
for node in tree.iter('title-group'):
for subnode in node.iter('article-title'):
whole = subnode.itertext()
for parts in whole:
title += parts
print(remove_control_characters(title))
【问题讨论】: