python解析xml一些心得体会

本文仅针对使用elementtree解析xml的情况。

1、使用.text获取某个标签文本的时候,一定注意判断返回值是不是None。因为None是python里一个很特殊的变量,拥有独特的类型NoneType,无法视同字符串进行操作。

2、使用find获取到某个节点,实际获取的是这个节点所包含的所有子节点,可以通过数组索引获取指定的子节点。例如

newNode = root.find(‘tagname’)

for i in range(len(newNode):

txt = newNode[i].text

3、遇到一些结构比较奇葩的xml的时候,比如

二氧化碳(CO<sub>2</sub>)和纯水(H<sub>2</sub>O)混合物的物理性质

可以通过循环titleNode的各个子节点获取text,然后拼接起来,结果发现fulltext的内容是:二氧化碳(CO2)和纯水(H2

后的内容取不到,这时,就要用.tail来获取节点后的小尾巴。titleNode[1].tail的值就是"O)混合物的物理性质"

4、如果我要取某个节点下的全部文字,而忽略掉其中的修饰节点,有没有更简单的方法?答案是,有的。

使用itertext()方法。

还是这个例子:二氧化碳(CO<sub>2</sub>)和纯水(H<sub>2</sub>O)混合物的物理性质

我只要用这个方式:fulltext = ‘’.join(titleNode.itertext())就可以把”二氧化碳(CO2)和纯水(H2O)混合物的物理性质“全部获取了,就这么简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值