欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用python的xml庫實現(xiàn)自閉合標簽

 更新時間:2025年01月07日 10:00:59   作者:knighthood2001  
文章介紹了作者編寫一個URDF格式化插件的初衷,目的是解決sw2urdf導出的URDF文件格式混亂的問題,本文結合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧

前言

最近一段時間一直想要寫一個urdf格式化插件。

至于為什么嘛,因為使用sw2urdf插件,導出的urdf,同一標簽的內容,是跨行的,這就導致,內容比較亂,而且行數比較多。影響閱讀。

因此,自己想寫格式化的腳本。

最近就開始分享一些,之前的思考。

正文

import xml.etree.ElementTree as ET
def pretty_print(element, level=0, indent="  "):
    """
    手動格式化 XML 數據,添加縮進并將空元素轉換為自閉合標簽。
    :param element: XML 元素
    :param level: 當前縮進級別
    :param indent: 縮進字符(默認為兩個空格)
    :return: 格式化后的 XML 字符串
    """
    result = ""
    if len(element) == 0:  # 如果沒有子元素,即可能是空元素
        if element.text and element.text.strip():  # 如果有文本內容
            result += f"{indent * level}<{element.tag}>{element.text.strip()}</{element.tag}>\n"
        else:
            result += f"{indent * level}<{element.tag} "
            # 如果有屬性,添加到標簽中
            if element.attrib:
                result += " ".join([f'{key}="{value}"' for key, value in element.attrib.items()])
            result += " />\n"  # 使用自閉合標簽形式
    else:
        result += f"{indent * level}<{element.tag}"
        # 如果有屬性,添加到標簽中
        if element.attrib:
            result += " " + " ".join([f'{key}="{value}"' for key, value in element.attrib.items()])
        result += ">\n"
        # 處理元素的文本內容
        if element.text and element.text.strip():
            result += f"{indent * (level + 1)}{element.text.strip()}\n"
        # 遞歸處理子元素
        for child in element:
            result += pretty_print(child, level + 1, indent)
        # 處理結束標簽
        result += f"{indent * level}</{element.tag}>\n"
    return result
# 讀取 XML 文件
file_path = 'test.urdf'  # 請將此路徑替換為實際的文件路徑
tree = ET.parse(file_path)
root = tree.getroot()
# 直接格式化 root 元素,而不需要創(chuàng)建新的根節(jié)點
formatted_xml = pretty_print(root)
# 打印格式化后的 XML
print(formatted_xml)
with open('test_pretty.urdf', 'w') as f:
    f.write(formatted_xml)

這里,代碼主要是通過xml.etree.ElementTree解析xml文件。

然后在函數中補充上空格,<,/>等標簽。

注意,這個函數是個遞歸的函數,會在函數內部調用函數本身。

實現(xiàn)的效果如下

可以發(fā)現(xiàn),目前的問題是:

  • 沒有注釋
  • urdf最開始的標簽,不見了。

到此這篇關于使用python的xml庫實現(xiàn)自閉合標簽的文章就介紹到這了,更多相關python xml庫自閉合標簽內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解python-docx處理Word必備工具

    詳解python-docx處理Word必備工具

    這篇文章主要介紹了python-docx處理Word必備工具,我主要講講自己用到的幾個內容是怎么設置的,對python-docx處理Word的相關知識感興趣的朋友一起看看吧
    2021-10-10
  • python查詢mysql,返回json的實例

    python查詢mysql,返回json的實例

    下面小編就為大家分享一篇python查詢mysql,返回json的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Python中的Numpy入門教程

    Python中的Numpy入門教程

    這篇文章主要介紹了Python中的Numpy入門教程,著重講解了矩陣中的數組操作,需要的朋友可以參考下
    2014-04-04
  • python使用xlsx和pandas處理Excel表格的操作步驟

    python使用xlsx和pandas處理Excel表格的操作步驟

    python的神器pandas庫就可以非常方便地處理excel,csv,矩陣,表格 等數據,下面這篇文章主要給大家介紹了關于python使用xlsx和pandas處理Excel表格的操作步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • pandas DataFrame 交集并集補集的實現(xiàn)

    pandas DataFrame 交集并集補集的實現(xiàn)

    這篇文章主要介紹了pandas DataFrame 交集并集補集的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • Python周期任務神器之Schedule模塊使用詳解

    Python周期任務神器之Schedule模塊使用詳解

    這篇文章主要為大家詳細介紹了Python中的周期任務神器—Schedule模塊的安裝和初級、進階使用方法,文中的示例代碼講解詳細,需要的可以參考一下
    2022-04-04
  • python數據類型之間怎么轉換技巧分享

    python數據類型之間怎么轉換技巧分享

    在本篇文章里小編給大家分享的是關于python數據類型之間怎么轉換實例以及小技巧內容,有興趣的朋友們參考下。
    2019-08-08
  • Python之字符串的遍歷的4種方式

    Python之字符串的遍歷的4種方式

    這篇文章主要介紹了Python之字符串的遍歷的4種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • python框架flask入門之環(huán)境搭建及開啟調試

    python框架flask入門之環(huán)境搭建及開啟調試

    這篇文章主要介紹了python框架flask入門環(huán)境搭建及開啟調試的步驟設置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 如何在Flask中進行異常處理實例解析

    如何在Flask中進行異常處理實例解析

    這篇文章主要為大家介紹了如何在Flask中進行異常處理實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論