日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Python 标准库之 XML(下)

發布時間:2024/9/15 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 标准库之 XML(下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文作者:Rocky0249

公眾號:Python空間

寫在之前


隔了1天了,不知道你們還記得上一篇文章的內容不,如果不記得的話請移步 --?Python 標準庫之 XML(上)。


今天我們繼續來學習 XML 的剩下的內容,主要是編輯和一些常用屬性和方法的總結,下面開始今天的學習。


編輯(增刪改查)


我們還是用上一篇文章中的例子,為了方便查看,我把內容再粘貼過來,下面的內容記得保存并且命名為 test.xml。


<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>


上一篇文章我們主要是對 xml 進行了讀取的有關操作,其實還可以對 XML 進行編輯,也就是增刪改查的功能,下面我們來操作一下:


>>> import xml.etree.ElementTree as ET
>>> tree = ET.ElementTree(file = "test.xml")
>>> root = tree.getroot() #獲得根
>>> root[1].tag
'book'
>>> del root[1]
>>> for ele in root:
... ? ?print(ele.tag)
...
book
book


如上,我們成功的刪除了一個節點,原來有 3 個 book 節點,現在就只剩下兩個了。接下來讓我們打開源文件看看,是不是正好缺少了第 2 個節點呢?結果讓我們很失望,源文件并沒有什么變化。


確實如此,源文件并沒有變,因為到了這一步的修改動作還只是停留在內存里,還沒有將修改的結果輸出到文件,不要忘記我們是在內存中建立的 ElementTree 對象。那么該如何做呢?請接著往下看:


>>> import os
>>> outpath = os.getcwd()
>>> file = outpath + "/test.xml"


把當前文件的路徑拼裝好。


>>> tree.write(file)


做完上面的操作以后再去看源文件,已經變成兩個節點了。


除了刪除,也是可以修改的:


>>> for price in root.iter('price'): #原來每本書的價格
... ? ?print(price.text)
...
30.00
39.95
>>> for price in root.iter('price'): #每本上漲 10 元并做標記
... ? ?new_price = float(price.text) + 10
... ? ?price.text = str(new_price)
... ? ?price.set("updated","up")
...
>>> tree.write(file)


然后我們來查看一下源文件:


<bookstore>
<book category="COOKING">
?<title lang="en">Everyday Italian</title>
?<author>Giada De Laurentiis</author>
?<year>2005</year>
?<price updated="up">50.0</price>
</book>
<book category="WEB">
?<title lang="en">Learning XML</title>
?<author>Erik T. Ray</author>
?<year>2003</year>
?<price updated="up">49.95</price>
</book>
</bookstore>


通過對比我們可以發現,不僅價格改變了,而且在 price 標簽里面增加了屬性標記。


上面我們是用 del 來刪除某個元素,其實這個在編程中我們用的并不多,一般情況下更喜歡用 remove() 方法。比如要刪除 price = 50 的書,可以像下面這樣操作:


>>> tree.write(file)
>>> for book in root.findall("book"):
... ? ?price = book.find("price").text
... ? ?if float(price) == 50:
... ? ? ? ? ? ?root.remove(book)
...
>>> tree.write(file)


于是就有了下面的結果:


<bookstore>
<book category="WEB">
?<title lang="en">Learning XML</title>
?<author>Erik T. Ray</author>
?<year>2003</year>
?<price updated="up">49.95</price>
</book>
</bookstore>


接下來我們來看看增加元素:


>>> import xml.etree.ElementTree as ET
>>> tree = ET.ElementTree(file = 'test.xml')
>>> root = tree.getroot()
>>> ET.SubElement(root,"book") # 在root里面添加book節點
<Element 'book' at 0x000000000209C778>
>>> for ele in root:
... ? ? print(ele.tag)
...
book
book
>>> b2 = root[1]
>>> b2.text = 'python'
>>> tree.write('test.xml')


這樣就大功告成了,然后再像上面一樣看一下源文件,發現果真增加了。


常用的屬性 & 方法


ET 里面的屬性 & 方法很多,這里列出常用的幾個,供使用中備查。


1.Element 對象


常用的屬性如下:


  • tag:string,元素數據種類

  • text:string,元素的內容

  • attrib:dictionary,元素的屬性字典

  • tail:string,元素的尾形


針對屬性的操作如下:


  • clear():清空元素的后代,屬性,text 和 tail 也設置為 None。

  • items():根據屬性字典返回一個列表,列表元素為(key,value)。

  • keys():返回包含所有元素屬性鍵的列表。

  • set(key,value):設置新的屬性鍵和值。


針對后代的操作如下:


  • append(subelement):添加直系子元素。

  • extend(sunelements):增加一串元素對象作為子元素。

  • find(match):尋找第一個匹配子元素,匹配對象可以為 tag 或 path。

  • findall(match):尋找所有匹配子元素,匹配對象可以為 tag 或 path。

  • insert(index,element):在指定位置插入子元素。

  • remove(subelement):刪除子元素


2.ElementTree 對象


  • find(match)。

  • findall(match)。

  • getroot():獲取根結點。

  • parse(source,parser = None):裝載 XML 對象,source 可以為文件名或文件類型對象。


寫在之后


Python 標準庫之 XML 的基本知識大體我就說這么多,至于明天推送什么我還沒想好,有讀者在后臺說這個能不能弄幾個題實戰一下,我看看能不能找到什么能練的題,要是找到的話明天就寫一下,要是找不到的合適的話就先放一下,以后想幾個再更。


不知道大家伙有沒有看我昨天的文章,推薦的幾個號,確實不錯,沒看的話可以找著再看看,真的很不錯。


如果你覺得本篇文章對你有所幫助的話,點個贊再走呀,謝謝。


The end。


推薦閱讀:

一文徹底搞懂 Python 生成器!

一文徹底搞懂 Python 裝飾器!


加我微信獲取?10 本?Python 經典書籍

總結

以上是生活随笔為你收集整理的Python 标准库之 XML(下)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人天堂久久 | 国产学生美女无遮拦高潮视频 | 久草精品视频在线观看 | 日日拍拍| a级片在线观看视频 | 国产91小视频| 日韩精品一区二区在线 | 国产成人精品一区二三区 | 97人妻精品一区二区三区动漫 | 免费网站在线观看人数在哪动漫 | 精品国产伦一区二区三区免费 | 欧美日韩福利视频 | av自拍偷拍 | 国产三级av片| 日韩精品免费电影 | 一区二区三区不卡在线 | 人人色视频 | 国产精品天干天干 | 超碰97在线免费观看 | 视频二区中文字幕 | 少妇一边呻吟一边说使劲视频 | 男人影院在线观看 | 影音先锋啪啪资源 | 在线观看视频一区 | 亚洲女同av | 国语粗话呻吟对白对白 | 2020狠狠干| 69成人网 | 久久精品一区二区三区黑人印度 | 日韩 欧美 | 成人黄色在线网站 | 国产黄a三级三级三级 | 色吊丝中文字幕 | 午夜寂寞剧场 | 天天干天天狠 | 蜜桃一区二区三区 | 毛片久久久久 | 国产九九久久 | 一级日批片 | 91操视频 | 日本高清中文字幕 | 天天操夜夜操视频 | caoporn视频在线观看 | a级性生活视频 | 国偷自产av一区二区三区 | 91chinese在线 | 成人短视频在线免费观看 | 黄wwwww| 中文字幕亚洲无线码在线一区 | 亚洲va久久久噜噜噜无码久久 | 91丨porny丨在线 | 国产毛片一区二区三区va在线 | 国产麻豆天美果冻无码视频 | 国语对白做受69按摩 | 六月丁香啪啪 | 狠狠久久久 | 亚洲第一偷拍 | 中文精品在线 | 98av视频 | 欧洲精品一区二区三区久久 | 搡老熟女国产 | 国产调教在线观看 | 黄片毛片一级 | 国产激情综合 | 欧美日韩久 | 高清三区 | 青青久在线 | 熟女熟妇伦久久影院毛片一区二区 | 超碰在线人 | 香蕉视频网站在线 | 青青草狠狠操 | 91麻豆免费视频 | 亚洲视频免费看 | 欧美日韩视频 | 完美搭档在线观看 | 亚洲黄色天堂 | 色就操| 精品爱爱 | 久久久久国色av免费观看性色 | 亚洲精品日韩av | 成人国产在线 | 欧美性受xxxx狂喷水 | 国产精品香蕉在线观看 | 亚洲成a人 | 国产69精品久久 | 亚洲顶级毛片 | 成人污污视频 | 日韩三级电影网址 | 日韩网站免费观看高清 | 69国产精品视频免费观看 | 日韩中文字幕视频在线 | 日本不卡视频一区二区三区 | www.黄色小说.com | 免费看欧美一级特黄a大片 国产免费的av | 在线看的av| 日韩在线视频网址 | r级无码视频在线观看 | 天天色一色 | 超碰这里只有精品 |