python提取xml文件中的内容,从python中的xml文档中提取文本

This is the sample xml document :

Everyday Italian

Giada De Laurentiis

2005

300.00

Harry Potter

J K. Rowling

2005

625.00

I want to extract the text without specifying the elements how can i do this , because i have 10 such documents. I want so because my problem is that user is entering some word which I don't know , it has to be searched in all of the 10 xml documents in their respective text portions. For this to happen I should know where the text lies without knowing about the element. One more thing that all these documents are different.

Please Help!!

解决方案

You could simply strip out any tags:

>>> import re

>>> txt = """

...

...

Everyday Italian

... Giada De Laurentiis

... 2005

... 300.00

...

...

...

...

Harry Potter

... J K. Rowling

... 2005

... 625.00

...

... """

>>> exp = re.compile(r'<.>')

>>> text_only = exp.sub('',txt).strip()

>>> text_only

'Everyday Italian\n Giada De Laurentiis\n 2005\n 300.00\n

\n\n \n Harry Potter\n J K. Rowling \n 2005\n 6

25.00'

But if you just want to search files for some text in Linux, you can use grep:

burhan@sandbox:~$ grep "Harry Potter" file.xml

Harry Potter

If you want to search in a file, use the grep command above, or open the file and search for it in Python:

>>> import re

>>> exp = re.compile(r'<.>')

>>> with open('file.xml') as f:

... lines = ''.join(line for line in f.readlines())

... text_only = exp.sub('',lines).strip()

...

>>> if 'Harry Potter' in text_only:

... print 'It exists'

... else:

... print 'It does not'

...

It exists

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值