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!"
你可以網路一下.下載一個試試