當前位置:首頁 » 編程語言 » xmlpython

xmlpython

發布時間: 2022-01-14 22:57:04

A. python xml 查找關鍵字

可以這么寫:
def find(html):
soup = BeautifulSoup(html.getResponse().content,from_encoding='gb18030')

for index in soup.find_all('ROWDATA'):

print index

html是你的網頁域名

B. 如何用Python輸出漂亮的xml文件

你的問題可以直接轉化為python如何讀取文件,使用這句代碼:open('thefile.xml').read( ) 下面是例子: >>> open('D:\\Test.xml',encoding='utf8').read()不知道為什麼,python3.4中讀取文件的默認使用GBK,這一點要注意

C. 如何用python提取XML中的注釋

from xml.etree import ElementTreestr_ = '' #文件中的xml字元串xml_obj = ElementTree.fromstring(str_)

然後通過對xml_obj進行操作,xml_obj本身也是一個xml節點。
xml_obj.getchildren() 獲取根節點的子節點列表
xml_obj.findall(node_name) 搜索xml_obj節點下名為node_name的所有節點
xml_obj.tag 節點的標簽
xml_obj.text 節點的文本信息 ,本例中可以獲得K這個文本。
xml_obj.tail 節點尾部的文本信息,本例中獲取Channel Regulator KCR1 Suppresses Heart Rhythm by Molating the Pacemaker Current I 就需要搜索到標簽為sup的節點,然後取節點的tail文本獲得。

D. python這樣的xml配置文件如何讀取

xml='''<?xmlversion="1.0"encoding="utf-8"?>
<Conf>
<DBconf>
<DB>
<Desc>abc</Desc>
<ConnStr>DB_192.168.3.1</ConnStr>
<UserName>system</UserName>
<PassWd>aa</PassWd>
</DB>
<DB>
<Desc>bb</Desc>
<ConnStr>ORA9i_192.168.3.1</ConnStr>
<UserName>system</UserName>
<PassWd>system</PassWd>
</DB>
<DB>
<Desc>ddd</Desc>
<ConnStr>ORA9i_192.168.3.1</ConnStr>
<UserName>system</UserName>
<PassWd>system</PassWd>
</DB>
</DBconf>
<Otherconf>
<a>aaa</a>
<c>aaa</c>
</Otherconf>
</Conf>
'''

fromxml.domimportminidom
defget_childern(node):
returnfilter(lambdan:isinstance(n,minidom.Element),node.childNodes)

doc=minidom.parseString(xml)
root=doc.childNodes[0]

DBconf,Otherconf=get_childern(root)

forDBinget_childern(DBconf):
forninget_childern(DB):
printn.tagName,n.firstChild.data

print

forninget_childern(Otherconf):
printn.tagName,n.firstChild.data

E. python 解析xml需要什麼模塊

Python的標准庫中,提供了6種可以用於處理XML的包。

(1)xml.dom

xml.dom實現的是W3C制定的DOM API。如果你習慣於使用DOM API或者有人要求這這樣做,可以使用這個包。不過要注意,在這個包中,還提供了幾個不同的模塊,各自的性能有所區別。

DOM解析器在任何處理開始之前,必須把基於XML文件生成的樹狀數據放在內存,所以DOM解析器的內存使用量完全根據輸入資料的大小。

(2)xml.dom.minidom

xml.dom.minidom是DOM API的極簡化實現,比完整版的DOM要簡單的多,而且這個包也小的多。那些不熟悉DOM的朋友,應該考慮使用xml.etree.ElementTree模塊。據lxml的作者評價,這個模塊使用起來並不方便,效率也不高,而且還容易出現問題。

相關推薦:《Python教程》

(3)xml.dom.pulldom

與其他模塊不同,xml.dom.pulldom模塊提供的是一個「pull解析器」,其背後的基本概念指的是從XML流中pull事件,然後進行處理。雖然與SAX一樣採用事件驅動模型(event-driven processing model),但是不同的是,使用pull解析器時,使用者需要明確地從XML流中pull事件,並對這些事件遍歷處理,直到處理完成或者出現錯誤。

pull解析(pull parsing)是近來興起的一種XML處理趨勢。此前諸如SAX和DOM這些流行的XML解析框架,都是push-based,也就是說對解析工作的控制權,掌握在解析器的手中。

(4)xml.sax

xml.sax模塊實現的是SAX API,這個模塊犧牲了便捷性來換取速度和內存佔用。SAX是Simple API for XML的縮寫,它並不是由W3C官方所提出的標准。它是事件驅動的,並不需要一次性讀入整個文檔,而文檔的讀入過程也就是SAX的解析過程。所謂事件驅動,是指一種基於回調(callback)機制的程序運行方法。

(5)xml.parser.expat

xml.parser.expat提供了對C語言編寫的expat解析器的一個直接的、底層API介面。expat介面與SAX類似,也是基於事件回調機制,但是這個介面並不是標准化的,只適用於expat庫。

expat是一個面向流的解析器。您注冊的解析器回調(或handler)功能,然後開始搜索它的文檔。當解析器識別該文件的指定的位置,它會調用該部分相應的處理程序(如果您已經注冊的一個)。該文件被輸送到解析器,會被分割成多個片斷,並分段裝到內存中。因此expat可以解析那些巨大的文件。

(6)xml.etree.ElementTree(以下簡稱ET)

xml.etree.ElementTree模塊提供了一個輕量級、Pythonic的API,同時還有一個高效的C語言實現,即xml.etree.cElementTree。與DOM相比,ET的速度更快,API使用更直接、方便。與SAX相比,ET.iterparse函數同樣提供了按需解析的功能,不會一次性在內存中讀入整個文檔。ET的性能與SAX模塊大致相仿,但是它的API更加高層次,用戶使用起來更加便捷。

建議:在使用Python進行XML解析時,首選使用ET模塊,除非你有其他特別的需求,可能需要另外的模塊來滿足。

F. 用python讀取xml<></>之間的內容並修改

python是有相關的解析html格式的模塊的

可以識別出標簽,簡單的處理文件你可以用Beautiful Soup模塊,想做大一些的爬蟲可以使用scrapy框架的xpath語法來鎖定標簽。


這里引用下官方說明:

Beautiful Soup提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數據,因為簡單,所以不需要多少代碼就可以寫出一個完整的應用程序。


Beautiful Soup自動將輸入文檔轉換為Unicode編碼,輸出文檔轉換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。然後,你僅僅需要說明一下原始編碼方式就可以了。


Beautiful Soup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強勁的速度。


因此可以很方便地提取出HTML或XML標簽中的內容


給你個樣例:

frombs4importBeautifulSoup
importurllib2

html=urllib2.urlopen(url).read()#這里是直接爬取一個網址了,html變數也可以是一個本地的文件
content=BeautifulSoup(html).findAll('a')#使用這句就可以提取出文件中所有的<a></a>中的內容

"""模塊還支持很多路徑索引修改相關的功能,總之功能是比較強大的"""


希望我的回答可以幫到你:-)

G. python 如何把xml文件轉化成string

你說的不是xml文件吧,是xml對象轉化成string吧。

你可以使用toxml()這個方法。

Node.toxml([encoding])
"""
.
Withnoargument,,andtheresultis

document.-8islikely
incorrect,sinceUTF-8isthedefaultencodingofXML.
Withanexplicitencoding[1]argument,theresultisabytestringinthe
specifiedencoding..To
,the
「utf-8」.
Changedinversion2.3:;seewritexml().
"""

如果解決了您的問題請採納!
如果未解決請繼續追問

H. python讀取xml文件有哪些方法

引入XML組件:import xml.dom.minidom。
創建一個xml文件,<?xml version="1.0" encoding="utf-8"?>。
相關推薦:《Python教程》
載入讀取XML文件,xml.dom.minidom.parse('abc.xml'),這是xml文件的對象。
獲取XML文檔對象,root = dom.documentElement。
獲取標簽之間的數據 ,rootdata.getElementsByTagName('caption')。
總結一下xml對象,node.getAttribute(AttributeName),獲取XML節點屬性值,node.getElementsByTagName(TagName),獲取XML節點對象集合,等等具體的查看手冊。

I. Python 怎麼解析 xml字元串

1. 我上面這段xml代碼,一開始沒有注意看,在每一個元素的結尾元素中都含有轉義符,這就是為什麼我用xml解析插件時一直保報錯的原因,因為他不是正規的xml格式。我的方法是用正則替換掉:re.sub(r'(<)\\(/.+?>)',r'\g<1>\g<2>',f_xml) 對於Python中的正則re的sub用法
2. 處理成正規的xml格式後,我這里還是用ElementTree來解析的,但在載入時又報錯:
cElementTree.ParseError: XML or text declaration not at start of entity: line 2, column 0
這個錯誤我在網上沒有找到合適的答案,不過根據字面意思來解決,就是在開頭的地方有錯誤。這里我嘗試這吧xml的文檔聲明給去掉了,居然沒有報錯。這里有些不理解為什麼不能加? 我的方法:f_xml=test_xml.replace('<?xml version="1.0" encoding="gbk"?>','')
3. 然後再載入,就能獲取到相應的節點了。

熱點內容
apache壓縮 發布:2024-11-15 15:11:54 瀏覽:245
java比較三個數 發布:2024-11-15 15:08:39 瀏覽:835
fml加密 發布:2024-11-15 15:05:56 瀏覽:882
存儲上市龍頭 發布:2024-11-15 14:52:14 瀏覽:38
我的世界伺服器怎麼重置教學 發布:2024-11-15 14:52:13 瀏覽:123
C語言tf 發布:2024-11-15 14:36:22 瀏覽:811
違反密碼法是什麼意思 發布:2024-11-15 14:36:20 瀏覽:920
androidmp3錄音 發布:2024-11-15 14:32:50 瀏覽:493
英朗自動擋哪個配置最好 發布:2024-11-15 14:27:44 瀏覽:253
編譯原理斷言有哪幾種 發布:2024-11-15 14:25:29 瀏覽:201