pythonlxml
A. python LXML模块死活安装不了怎么办
1. 安装wheel,命令行运行:
pip install wheel
2.在这里下载对应的.whl文件,注意别改文件名
3. 进入.whl所在的文件夹,执回行命令即可答完成安装
pip install 带后缀的完整文件名
B. python中lxml模块怎么导入
这个模块是第三方模块,需要先安装再导入。
安装:终端命令界面下,pip install lxml(安装过程中如果提示需要其他哪个库,需要先装提示的库,再装lxml)。
如果使用pip安装失败,到pypi社区官网下载压缩包解压,终端界面进入其目录(当前目录有个叫“setup.py”就对了),用命令 python setup install 就行。
导入:import lxml 即可
C. lxml在python中怎么安装
首先要有 Python :You need Python 2.3 or later.
然后是需要:You need libxml2 and libxslt, in particular:
使用:$sudo apt-get install libxml2 libxml2-dev 安装 libxml2
使用:$sudo apt-get install libxlst libxslt-dev 安装 libxslt
安装 python-libxml2 和 python-libxslt :$sudo apt-get install python-libxml2 python-libxslt
然后就可以回使用:$sudo easy_install lxml 来安装最新的 lxml 了。我装的答是最新版本:lxml 2.2beta1
在 Cygwin 上安装也一样,直接选择安装 libxml2, libxml2-devel, libxlst, libxlst-devel, python-libxml2, python-libxslt 包安装,然后 $sudo easy_install lxml 就可以装上了!
D. lxml是不是没有python3.4的版本
最多支持到到Python3.2
更高版本的我没有找到
E. 如何检测python中是否安装了lxml
IDLE导入lxml模块,如果没安装会报错
import lxml
F. python lxml是什么语言写的
lxml takes all the pain out of XML. Stephan Richter lxml是Python语言里和XML以及HTML工作的功能最丰富和最容易使用的库。lxml是为libxml2和libxslt库的一个Python化的绑定。它与众不同的地方是它兼顾了这些库的速度和功能完整性,以及纯Pyth...
最好先说明一下你的python的版本,这样更方便回答一些 我就简单说一下我的解决办法吧 平台是win10 64位 python版本是3.5.1 64位 打开python3.5程序 输入 import pip; print(pip.pep425tags.get_supported()) 显示如下图: 详细什么意思就不太清...
G. Python lxml所有与多个命名空间问题,怎么解决
有如下xml
<A xmlns="http://This/is/a/namespace">
<B>dataB1</B>
<B>dataB2</B>
<B>
<C>dataC</C>
</B>
</A>
其中的xmlns属性表示的是该xml的默认命名空间,该命名空间必须是一个url形式
查看xml的tag
#encoding=utf8
from lxml import etree
str_xml = """
<A xmlns="http://This/is/a/namespace">
<B>dataB1</B>
<B>dataB2</B>
<B>
<C>dataC</C>
</B>
</A>
"""
xml = etree.fromstring(str_xml)
for node in xml.iter():
print node.tag
结果为:
{http://This/is/a/namespace}A
{http://This/is/a/namespace}B
{http://This/is/a/namespace}B
{http://This/is/a/namespace}B
{http://This/is/a/namespace}C
可以看到,跟普通xml的tag相比每个tag前面都多出了一个命名空间
获取命名空间 .nsmap
from lxml import etree
str_xml = """
<A xmlns="http://This/is/a/namespace">
<B>dataB1</B>
<B>dataB2</B>
<B>
<C>dataC</C>
</B>
</A>
"""
xml = etree.fromstring(str_xml)
ns = xml.nsmap
print ns
print ns[None]
结果
{None: 'http://This/is/a/namespace'}
http://This/is/a/namespace
ns[None]获取的是默认命名空间,ns会显示所有的命名空间
获取有命名空间的节点内容
from lxml import etree
str_xml = """
<A xmlns="http://This/is/a/namespace">
<B>dataB1</B>
<B>dataB2</B>
<B>
<C>dataC</C>
</B>
</A>
"""
xml = etree.fromstring(str_xml)
ns = xml.nsmap[None]
ns = "{%s}" % ns
for item in xml.findall("{0}B/{0}C".format(ns)): #不能用xpath会出错
print item.text
结果
dataC
注意,在查找节点时,每一级节点都需要加上命名空间。而且测试时发现,findall可以正常查找到信息,而xpath会报错。
获取带命名空间节点的属性值
from lxml import etree
str_xml = """
<A xmlns="http://This/is/a/namespace">
<B b="123">dataB1</B>
<B>dataB2</B>
<B>
<C>dataC</C>
</B>
</A>
"""
xml = etree.fromstring(str_xml)
ns = xml.nsmap[None]
ns = "{%s}" % ns
item = xml.find(ns+"B")
print item.get("b")
print item.text
结果
123
dataB1
可以看到,获取属性时,不需要加命名空间,直接获取即可
H. 如何使用xml解析啊python中lxml是不是不能用
可以使用xml.dom.minidom模块
import xml.dom.minidom as dd
cdb = dd.parse("GAC_ExCAN.xml")
nd = cdb.getElementsByTagName('Node')
I. python lxml,中文乱码
有一个万能转码的模块,会自动识别并转换,chardet
import chardet
def smartcode(stream):
____ustring = stream
____codedetect = chardet.detect(ustring)["encoding"]
____print codedetect
____try:
________print ustring
________ustring = unicode(ustring, codedetect)
________print ustring
________return "%s %s %s" % (" ",ustring.encode('utf8'))
____except:
________return u"bad unicode encode try!"
你可以网络一下.下载一个试试