簡體   English   中英

使用 python 讀取 xml 元素

[英]Read an xml element using python

我有一個 xml 文件。 我想在文件中搜索一個特定的詞,如果我找到它 - 我想復制這個詞所在的所有 xml 元素。

例如:

 <Actions>
    <ActionGroup enabled="yes" name="viewsGroup" isExclusive="yes"/>
    <ExtAction iconSet=""  toolTip="" name="f5-script" text="f5-script"/>
</Actions> 

我正在尋找單詞 :"ExtAction",因為它在Actions元素中,所以我想復制所有它。 我該怎么做?

我通常將 ElementTree 用於此類工作,因為它對我來說似乎是最直觀的。 我相信這是標准庫的一部分,所以不需要安裝任何東西

作為一種更通用的方法,可以將整個 .xml 文件解析為字典字典,然后您可以根據需要對其進行相應的索引。 這可以像這樣完成(我只是在本地復制了您的 .xml 文件並將其稱為“test.xml”以進行演示。當然,如果您選擇此解決方案,請將其更改為與您的文件相對應):

import xml.etree.ElementTree as ET

tree = ET.parse('test.xml')
root = tree.getroot()

tags = [child.tag for child in root]
file_contents = {}
for tag in tags:
    for p in tree.iter(tag=tag):
        file_contents[tag] = dict(p.items())

如果您打印文件內容,您將獲得:

"{'ActionGroup': {'enabled': 'yes', 'name': 'viewsGroup', 'isExclusive': 'yes'}, 'ExtAction': {'iconSet': '', 'toolTip': '' , 'name': 'f5-script', 'text': 'f5-script'}}"

由此,索引出您需要的信息位是微不足道的。 例如,如果您想從 ExtAction 標記中獲取 name 值,您只需執行以下操作:

print(file_contents['ExtAction']['name'])  # or save this as a variable if you need it

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM