日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:xml.dom.pulldom—-支持構(gòu)建部分DOM樹

xml.dom.pulldom —- 支持構(gòu)建部分 DOM 樹

源代碼: Lib/xml/dom/pulldom.py

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),樺南企業(yè)網(wǎng)站建設(shè),樺南品牌網(wǎng)站建設(shè),網(wǎng)站定制,樺南網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,樺南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。


xml.dom.pulldom 模塊提供了一個(gè)“拉取解析器”,它能在必要時(shí)被用于產(chǎn)生文件的可訪問 DOM 的片段。 其基本概念包括從輸入的 XML 流拉取“事件”并處理它們。 與同樣地同時(shí)應(yīng)用了事件驅(qū)動(dòng)處理模型加回調(diào)函數(shù)的 SAX 不同,拉取解析器的用戶要負(fù)責(zé)顯式地從流拉取事件,并循環(huán)遍歷這些事件直到處理結(jié)束或者發(fā)生了錯(cuò)誤條件。

警告

xml.dom.pulldom 模塊對(duì)于惡意構(gòu)建的數(shù)據(jù)是不安全的。 如果你需要解析不受信任或未經(jīng)身份驗(yàn)證的數(shù)據(jù),請(qǐng)參閱 XML 漏洞。

在 3.7.1 版更改: SAX 解析器默認(rèn)不再處理一般外部實(shí)體以提升在默認(rèn)情況下的安全性。 要啟用外部實(shí)體處理,請(qǐng)傳入一個(gè)自定義的解析器實(shí)例:

 
 
 
 
  1. from xml.dom.pulldom import parse
  2. from xml.sax import make_parser
  3. from xml.sax.handler import feature_external_ges
  4. parser = make_parser()
  5. parser.setFeature(feature_external_ges, True)
  6. parse(filename, parser=parser)

示例:

 
 
 
 
  1. from xml.dom import pulldom
  2. doc = pulldom.parse('sales_items.xml')
  3. for event, node in doc:
  4. if event == pulldom.START_ELEMENT and node.tagName == 'item':
  5. if int(node.getAttribute('price')) > 50:
  6. doc.expandNode(node)
  7. print(node.toxml())

event 是一個(gè)常量,可以取下列值之一:

  • START_ELEMENT

  • END_ELEMENT

  • COMMENT

  • START_DOCUMENT

  • END_DOCUMENT

  • CHARACTERS

  • PROCESSING_INSTRUCTION

  • IGNORABLE_WHITESPACE

node 是一個(gè) xml.dom.minidom.Document, xml.dom.minidom.Elementxml.dom.minidom.Text 類型的對(duì)象。

由于文檔是被當(dāng)作“展平”的事件流來處理的,文檔“樹”會(huì)被隱式地遍歷并且無論所需元素在樹中的深度如何都會(huì)被找到。 換句話說,不需要考慮層級(jí)問題,例如文檔節(jié)點(diǎn)的遞歸搜索等,但是如果元素的內(nèi)容很重要,則有必要保留一些上下文相關(guān)的狀態(tài)(例如記住任意給定點(diǎn)在文檔中的位置)或者使用 DOMEventStream.expandNode() 方法并切換到 DOM 相關(guān)的處理過程。

class xml.dom.pulldom.PullDom(documentFactory=None)

xml.sax.handler.ContentHandler 的子類。

class xml.dom.pulldom.SAX2DOM(documentFactory=None)

xml.sax.handler.ContentHandler 的子類。

xml.dom.pulldom.parse(stream_or_string, parser=None, bufsize=None)

基于給定的輸入返回一個(gè) DOMEventStream。 stream_or_string 可以是一個(gè)文件名,或是一個(gè)文件類對(duì)象。 parser 如果給出,則必須是一個(gè) XMLReader 對(duì)象。 此函數(shù)將改變解析器的文檔處理程序并激活命名空間支持;其他解析器配置(例如設(shè)置實(shí)體解析器)必須在之前已完成。

如果你將 XML 存放為字符串形式,則可以改用 parseString() 函數(shù):

xml.dom.pulldom.parseString(string, parser=None)

返回一個(gè) DOMEventStream 來表示 (Unicode) string。

xml.dom.pulldom.default_bufsize

bufsize 形參的默認(rèn)值設(shè)為 parse()。

此變量的值可在調(diào)用 parse() 之前修改并使新值生效。

DOMEventStream 對(duì)象

class xml.dom.pulldom.DOMEventStream(stream, parser, bufsize)

在 3.11 版更改: Support for __getitem__() method has been removed.

  • getEvent()

    返回一個(gè)元組,其中包含 eventxml.dom.minidom.Document 形式的當(dāng)前 node 如果 event 等于 START_DOCUMENT,包含 xml.dom.minidom.Element 如果 event 等于 START_ELEMENTEND_ELEMENT 或者 xml.dom.minidom.Text 如果 event 等于 CHARACTERS。 當(dāng)前 node 不包含有關(guān)其子節(jié)點(diǎn)的信息,除非 expandNode() 被調(diào)用。

  • expandNode(node)

    node 的所有子節(jié)點(diǎn)擴(kuò)展到 node 中。 例如:

       
       
       
       
    1. from xml.dom import pulldom
    2. xml = 'Foo

      Some text

      and more

      '
    3. doc = pulldom.parseString(xml)
    4. for event, node in doc:
    5. if event == pulldom.START_ELEMENT and node.tagName == 'p':
    6. # Following statement only prints '

      '

    7. print(node.toxml())
    8. doc.expandNode(node)
    9. # Following statement prints node with all its children '

      Some text

      and more

      '
    10. print(node.toxml())
  • reset()


當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)Python教程:xml.dom.pulldom—-支持構(gòu)建部分DOM樹
URL鏈接:http://m.5511xx.com/article/cccjsod.html