pyquery如何解析xml
之前遇到pyquery解析svg文件(xml格式)的时候发现无法获取节点,比如下面这个svg文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="650px" height="3030.0px">
<style>text {font-family:PingFangSC-Regular,Microsoft YaHei,'Hiragino Sans GB',Helvetica;font-size:14px;fill:#282828;}</style>
<text x="0" y="35">呜愉伸治译喊傲著逢循托从巨毒高翼阻聋巴垂级茧郎暑聚渣啦秘炊奋睁连撤宁畅搁刚轮蜂缺幕葵</text>
<text x="0" y="79">搞陆林卵窝提格桑南隔选膛奸修担穴罐胖宅圆馒杏至鲁类痒宝拌让必油匀困双拢砖轧凑辜亦银牧</text>
</svg>
我在用下面的python代码提取text节点的时候,发现无法提取,没有任何输出:
from pyquery import PyQuery as pq
with open(文件路径, "r") as f:
svg = f.read().encode("utf-8")
p = pq(svg)
for i in p("text").items():
print(i)
之后,我把pyquery的解析方式,强制设置为 paser="html"
后,就行了:
from pyquery import PyQuery as pq
with open(文件路径, "r") as f:
svg = f.read().encode("utf-8")
p = pq(svg, parser="html")
for i in p("text").items():
print(i)