2016-08-04 96 views
0

后我解析具有以下结构的XML文档:问题显示XML解析

<Distlist> 
    <DistDoc> 
    <Metadata></Metadata> 
    <ArchiveDoc> 
     <Article> 
      <Para>aaaaaa</Para> 
      <Para>bbbbbb</Para> 
      <Para>cccccc</Para> 
     </Article> 
    </ArchiveDoc> 
    </DistDoc> 
</Distlist> 

我在每个文件5000篇文章,每篇文章的全文被分成段落。我提取与下面的代码文章的全文(我用LXML):

doc = etree.parse(path) #Parse file 
root=doc.getroot() #Get the root 

#Store full texts in list 
full_texts = [] 
for child in root: 
    full_texts.append("\n\n".join(child[1][0].itertext())) 

当我看到是这样的输出:

aaaaaaabbbbbbcccc 

虽然我的期望输出(双行打破)应该是:

aaaaaa 

bbbbbb 

cccccc 

段落之间没有分隔时很难阅读。我究竟做错了什么?

回答

1

遍历article节点和连接para节点的文本:

for article in root.xpath(".//Article"): 
    texts = article.xpath(".//Para/text()") 
    print("\n".join(texts)) 
+0

它的工作,非常感谢! – pawelty