python如何刪除xml中的w:ascii屬性

可以使用Python的xml.etree.ElementTree模塊通過以下步驟刪除XML中的w:ascii屬性:

import xml.etree.ElementTree as ET# 原始XML片段(需包含命名空間聲明)
xml_str = '''
<w:rPr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:rFonts w:ascii="Times New Roman" w:eastAsia="黑體" w:hAnsi="Times New Roman"/><w:color w:val="auto"/><w:sz w:val="44"/>
</w:rPr>
'''# 注冊命名空間
namespaces = {'w': 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'
}# 解析XML
root = ET.fromstring(xml_str)# 查找所有w:rFonts元素
for r_fonts in root.findall('w:rFonts', namespaces):# 構建完整屬性名(包含命名空間)ascii_attr = '{' + namespaces['w'] + '}ascii'# 刪除屬性if ascii_attr in r_fonts.attrib:del r_fonts.attrib[ascii_attr]# 輸出修改后的XML
ET.indent(root, space="  ", level=0)
print(ET.tostring(root, encoding='unicode'))

修改后的輸出結果:

<w:rPr xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:rFonts w:eastAsia="黑體" w:hAnsi="Times New Roman" /><w:color w:val="auto" /><w:sz w:val="44" />
</w:rPr>

關鍵點說明:

  1. 命名空間處理

    • 使用namespaces字典注冊w前綴對應的URI
    • 屬性名需要包含完整的命名空間URI(格式:{uri}localname
  2. 屬性操作

    • 通過r_fonts.attrib字典訪問屬性
    • 使用del語句刪除指定屬性
  3. 批量處理

    • 使用findall方法查找所有匹配的元素
    • 支持處理文檔中多個<w:rFonts>標簽的情況

在Word文檔中的實際應用:

如果需要修改實際Word文檔中的樣式,建議結合python-docx庫使用:

from docx import Documentdef remove_ascii_font(doc_path):doc = Document(doc_path)# 遍歷所有段落樣式for style in doc.styles:if style.type == 1:  # 段落樣式r_fonts = style.element.xpath('.//w:rFonts', namespaces=namespaces)for elem in r_fonts:ascii_attr = '{' + namespaces['w'] + '}ascii'if ascii_attr in elem.attrib:del elem.attrib[ascii_attr]doc.save('modified.docx')# 使用示例
remove_ascii_font('original.docx')

注意事項:

  1. 操作前務必備份原始文檔
  2. Word樣式系統可能包含繼承關系,需要確保修改目標樣式
  3. 某些樣式可能被鎖定無法修改,需檢查文檔保護設置
  4. 建議使用lxml庫替代標準庫ElementTree以獲得更好的XPath支持

這種方法直接操作XML結構,比通過python-docx的API操作更底層,適合處理復雜樣式修改需求。對于簡單修改,仍推薦優先使用python-docx的標準API。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/910542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910542.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【React】React CSS 樣式設置全攻略

在 React 中設置 CSS 樣式主要有以下幾種方式&#xff0c;各有適用場景&#xff1a; 1. 內聯樣式 (Inline Styles) 直接在 JSX 元素中使用 style 屬性&#xff0c;值為 JavaScript 對象&#xff08;使用駝峰命名法&#xff09; function Component() {return (<div style…

JS紅寶書筆記 8.2 創建對象

雖然使用Object構造函數或對象字面量可以方便地創建對象&#xff0c;但這些方式有明顯不足&#xff1a;創建具有同樣接口的多個對象需要重復編寫很多代碼 工廠模式可以用不同的參數多次調用函數&#xff0c;每次都會返回一個新對象&#xff0c;這種模式雖然可以解決創建多個類…

高通camx hal進程dump日志分析三:Pipeline DumpDebugInfo原理分析

【關注我,后續持續新增專題博文,謝謝!!!】 上一篇我們講了: 這一篇我們開始講: 目錄 一、問題背景 二、DumpDebugInfo原理 2.1:我們分析下代碼 2.2 :Pipeline Dump debug info 2.3 :dump Metadata Pending Node信息 2.4 :Dump Metadata Pool Debug信息 2.5 :No…

【數據結構】_二叉樹基礎OJ

目錄 1. 單值二叉樹 1.1 題目鏈接與描述 1.2 解題思路 1.3 程序 2. 相同的樹 2.1 題目鏈接與描述 2.2 解題思路 2.3 程序 3. 對稱二叉樹 3.1 題目鏈接與描述 3.2 解題思路 3.3 程序 1. 單值二叉樹 1.1 題目鏈接與描述 題目鏈接&#xff1a; 965. 單值二叉樹 - 力…

軟件工程畫圖題

目錄 1.大綱 2.數據流圖 3.程序流圖 4.流圖 5.ER圖 6.層次圖 7.結構圖 8.盒圖 9.狀態轉換圖 10.類圖 11.用例圖 12.活動圖 13.判定表和判定樹 14.基本路徑測試過程(白盒測試) 15.等價類劃分(黑盒測試) 1.大綱 (1).數據流圖 (2).程序流圖 (3).流圖 (4).ER圖…

H7-TOOL自制Flash讀寫保護算法系列,為華大電子CIU32F003制作使能和解除算法,支持在線燒錄和脫機燒錄使用2025-06-20

說明&#xff1a; 很多IC廠家僅發布了內部Flash算法文件&#xff0c;并沒有提供讀寫保護算法文件&#xff0c;也就是選項字節算法文件&#xff0c;需要我們制作。 實際上當前已經發布的TOOL版本&#xff0c;已經自制很多了&#xff0c;比如已經支持的兆易創新大部分型號&…

go channel用法

介紹 channel 在 Go 中是一種專門用來在 goroutine 之間傳遞數據的類型安全的管道。 你可以把它理解成&#xff1a; 多個 goroutine 之間的**“傳話筒”**&#xff0c;誰往通道里塞東西&#xff0c;另一個 goroutine 就能接收到。 Go 語言采用 CSP&#xff08;Communicatin…

openLayers切換基于高德、天地圖切換矢量、影像、地形圖層

1、需要先加載好地圖&#xff0c;具體點此鏈接 openLayers添加天地圖WMTS、XYZ瓦片服務圖層、高德地圖XYZ瓦片服務圖層-CSDN博客文章瀏覽閱讀31次。本文介紹了基于OpenLayers的地圖交互功能實現&#xff0c;主要包括以下內容&#xff1a; 地圖初始化&#xff1a;支持天地圖XYZ…

springMVC-15 異常處理

異常處理-基本介紹 基本介紹 1.Spring MVC通過HandlerExceptionResolver處理程序的異常&#xff0c;包括Handler映射、數據綁定以及目標方法執行時發生的異常。 2.主要處理Handler中用ExceptionHandler注解定義的方法。 3.ExceptionHandlerMethodResolver內部若找不到Excepti…

視頻匯聚EasyCVR平臺v3.7.2發布:新增全局搜索、播放器默認解碼方式等4大功能

EasyCVR視頻匯聚平臺帶著全新的v3.7.2版本重磅登場&#xff01;此次升級&#xff0c;絕非簡單的功能堆砌&#xff0c;而是從用戶體驗、操作效率以及系統性能等多維度進行的深度優化與革新&#xff0c;旨在為大家帶來更加強大、穩定且高效的視頻監控管理體驗。 一、全局功能搜索…

三、kubectl使用詳解

三、kubectl使用詳解 文章目錄 三、kubectl使用詳解1、常用基礎命令1.1 Kubectl命令格式1.2 查詢一個資源1.3 創建一個資源1.4 修改一個資源1.5 刪除一個資源1.6 其他 2、K8s隔離機制Namespace&#xff08;命名空間作用及使用&#xff09;2.1 什么是命名空間2.2 命名空間主要作…

JVM內存模型詳解

JVM內存模型詳解 Java虛擬機(JVM)內存模型是理解Java程序運行機制的核心&#xff0c;它定義了程序運行時數據的組織方式和訪問規則。與Java內存模型(JMM)關注并發不同&#xff0c;JVM內存模型主要描述運行時數據區的結構和功能。 一、JVM內存模型概述 JVM內存模型將運行時數…

《對話式 AI 白皮書》共創者招募

在 AI Agent 技術不斷演變的當下&#xff0c;共創一本不斷演變的對話式 AI 白皮書&#xff0c;共同探索人機對話的新紀元。無論你是開發者、技術專家、生態伙伴還是創業者&#xff0c;都期待你的加入。 項目地址&#xff1a;https://github.com/RTE-Dev/book_era_convoai/ 在…

Flux功能介紹,完整使用示例,與Mono對比

以下是關于Reactor框架中Flux與Mono的功能介紹、使用示例及對比分析&#xff1a; Flux功能介紹 核心定義 Flux是Reactor庫中的核心接口&#xff0c;表示一個異步的、包含零到多個元素的序列&#xff08;類似流式數據處理&#xff09;[3][4][7]。它可以處理無限長度的數據流&am…

Git使用基本指南

一、Git 基礎配置 首先需要配置用戶信息&#xff0c;讓 Git 知道你是誰&#xff1a; git config --global user.name "你的名字" git config --global user.email "你的郵箱example.com" 如果需要查看配置信息&#xff0c;可以使用&#xff1a; git co…

【入門】【例17.3】 內功逼毒

| 時間限制&#xff1a;C/C 1000MS&#xff0c;其他語言 2000MS 內存限制&#xff1a;C/C 64MB&#xff0c;其他語言 128MB 難度&#xff1a;中等 分數&#xff1a;100 OI排行榜得分&#xff1a;12(0.1分數2難度) 出題人&#xff1a;root | 描述 黃蓉中了毒&#xff0c;在 t 時…

蘋果芯片macOS安裝版Homebrew(親測)

在Linux服務器上安裝一個軟件常用yum&#xff0c;apt、dnf命令&#xff0c;同樣macOS可以使用brew命令來安裝軟件。 brew會自動幫你下載、解壓、安裝和配置&#xff0c;更重要的是&#xff1a;它還會自動處理好軟件之間的依賴關系&#xff0c;它將所有軟件都安裝在獨立的統一目…

uniapp+vue3做小程序,獲取容器高度

小程序獲能用createSelectorQuery&#xff0c;如果是子組件&#xff0c;后面可以額外加一個參數in來指定獲取dom的范圍。小程序里面可以直接.in(this)&#xff0c;但是vue3沒有this了&#xff0c;那就只能通過getCurrentInstance去獲取當前實例代替this &#xff0c;注意這里需…

【網工】華為配置專題進階篇①

目錄 ■浮動路由和BFD配置 ▲浮動路由 基本配置示例 ▲BFD ▲驗證命令 ▲測試連通性 ■路由綜合實驗RIP OSPF BGP ■浮動路由和BFD配置 ▲浮動路由 浮動路由&#xff1a;設置preference 浮動路由是一種備份路由機制&#xff0c;當主路由失效時&#xff0c;浮動路由會…

DeepLegal AI:智能法律文檔審查與合規助手+MVP

1. 商業價值與市場機會 DeepLegal AI旨在革新法律行業中耗時且資源密集型的文檔審查和合規流程。該應用將利用DeepSeek先進的語言模型能力&#xff0c;為律師事務所、企業法務部門和合規團隊提供一個高效、準確且經濟的解決方案。 市場機會&#xff1a; 法律科技市場正經歷爆…