在 elementtree 中查找并替换文本

2024-02-05

我对编程和Python非常陌生。我正在尝试查找并替换 xml 文件中的文本。这是我的 xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!--Arbortext, Inc., 1988-2008, v.4002-->
<!DOCTYPE doc PUBLIC "-//MYCOMPANY//DTD XSEIF 1/FAD 110 05 R5//EN"
 "XSEIF_R5.dtd">
<doc version="XSEIF R5"
xmlns="urn:x-mycompany:r2:reg-doc:1551-fad.110.05:en:*">
<meta-data></meta-data>
<front></front> 
<body>
<chl1><title xml:id="id_881i">Installation</title>
<p>To install SDK, perform the tasks mentioned in the following
table.</p>
<p><input>ln -s /sim/<var>user_id</var>/.VirtualBox $home/.VirtualBox</input
></p>
</chl1>
</body>
</doc>
 <?Pub *0000021917 0?>

我需要将“virtual box”的所有条目替换为“Xen”。为此我尝试了 Elementtree。但我不知道如何替换并写回文件。这是我的尝试。

import xml.etree.ElementTree as ET
tree=ET.parse('C:/My_location/1_1531-CRA 119     1364_2.xml')
doc=tree.getroot()
iterator=doc.getiterator()
 for body in iterator:
    old_text=body.replace("Virtualbox", "Xen")

这些文本可在 body 下的许多子标签中找到。我找到了删除子元素并附加新元素的方法,但无法仅替换文本。


替换文本、尾部属性。

import lxml.etree as ET

with open('1.xml', 'rb+') as f:
    tree = ET.parse(f)
    root = tree.getroot()
    for elem in root.getiterator():
        if elem.text:
            elem.text = elem.text.replace('VirtualBox', 'Xen')
        if elem.tail:
            elem.tail = elem.tail.replace('VirtualBox', 'Xen')

    f.seek(0)
    f.write(ET.tostring(tree, encoding='UTF-8', xml_declaration=True))
    f.truncate()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 elementtree 中查找并替换文本 的相关文章

随机推荐

  • WiX,如何防止文件卸载,尽管我们忘记设置永久=“是”

    我们有一个用 Wix 创建的产品安装程序 其中包含一个程序包 V1 和一些配置文件 现在 我们将使用新的产品代码进行重大升级 其中旧版本的产品被卸载并且 V2 已安装 我们想要的是保存其中一个配置文件以防止卸载 因为 V2 也需要它 不幸的
  • R:深度复制函数参数

    考虑下面的代码 i 3 j i i 4 j i 然而 我想要的是 i 3 f lt function x j i x j i 4 f 4 16 but i want it to be 12 如果您想知道为什么我要这样做 您可以考虑这段代码
  • Java反射:如何从对象获取字段值,而不知道它的类

    比如说 我有一个返回自定义的方法List与一些物体 它们返回为Object大部头书 我需要从这些对象中获取某个字段的值 但我不知道这些对象的类 有没有办法通过反射或其他方式来做到这一点 假设一个简单的情况 你的领域是public List
  • 字形未加载

    由于某种原因 当我使用 twitter bootstrap 2 3 2 时 图像的图标未加载 我有默认结构 CSS 图像 js 其他一切都有效 我也尝试添加一个简单的图标 例如 span class icon icon ok OK span
  • RabbitMq - ConversationId 与 CorrelationId - 哪个更适合跟踪特定请求?

    RabbitMQ 似乎有两个非常相似的属性 我并不完全理解其中的区别 ConversationId and CorrelationId 我的用例如下 我有一个网站 可以生成Guid 该网站调用 API 将该唯一标识符添加到HttpReque
  • 类型错误:“builtin_function_or_method”对象没有属性“__getitem__”

    我有简单的python功能 def readMainTemplate templateFile template open templateFile r data template read index1 data index origin
  • 类型错误:无法读取反应中未定义的属性“减少”

    我有一个表单 要求用户输入几个字段的字段值 将字段值存储在状态中并以自定义格式显示状态值 所以 我有几个输入字段和一个提交按钮
  • 如何使用 Bash 脚本自动添加用户帐户和密码?

    我需要能够在 Linux Fedora 10 上创建用户帐户 并通过 bash 脚本 或其他方式 如果需要的话 自动分配密码 通过 Bash 创建用户很容易 例如 whoever server usr sbin useradd newuse
  • Angular 2中的zip文件上传问题

    当我尝试上传 zip 文件时 不幸的是它没有上传到服务器上 它给了我错误 有些事情发生了 这是我的代码 const event this fileEvent console log FileEvent gt event const file
  • 在开发容器中运行 VSCode 时如何打开本地终端?

    我正在使用 VSCode 从内部编写代码VSCode 容器 https code visualstudio com docs remote containers 我可以在开发容器内打开终端 https code visualstudio c
  • SHA256 哈希值有多长?

    我要跑SHA256密码 盐 但我不知道要花多长时间VARCHAR设置 MySQL 数据库时 什么是好的长度 正如其名称所示 sha256 的长度为 256 位 由于 sha256 返回十六进制表示 4 位足以编码每个字符 而不是 8 位 如
  • ActionBar 中的 XP 样式字形烦恼

    我不想问太多与组件外观相关的问题 但如今应用程序中的外观似乎同样重要 无论如何 请看下面的图片 两者都使用 TActionManager 和 TActionMainMenuBar 来创建我的主菜单 图像左侧的菜单使用平台默认样式 右侧的菜单
  • 交叉引用自定义引用类型

    我正在尝试将交叉引用添加到 SEQ 字段中 我的文档包含 点标题 这意味着在两个标题元素之间 用户可以添加扩展名 1 1 和 1 2 之间可能是 1 1A 1 1B 点标题代码如下所示 STYLEREF HEADING 2 N SEQ HE
  • 如何获取对象数组中布尔值的计数(如果为真)

    我必须获取对象数组中布尔值的计数 如果为真 json结构如下 id 5 name a select true id 3 name b select false id 2 name x select true id 1 name y sele
  • 将参数传递给 HTML 中的表单操作

    我正在尝试使用此处的文件实现简单的文件上传 http www sanwebe com 2012 05 ajax image upload and resize with jquery and php 我让它工作并设法通过 CSS 更改样式等
  • 逗号运算符如何工作以及它有什么优先级?

    C 中的逗号运算符如何工作 例如 如果我这样做 a b c a最终等于b还是c 是的 我知道这很容易测试 只需在这里记录一下 以便有人可以快速找到答案 Update 这个问题暴露了使用逗号运算符时的细微差别 只是为了记录这一点 a b c
  • 动态替换 XML DML 中节点的值

    我现在正在努力解决这个问题 如何替换文本等于某个变量值的非类型化 XML 列中的节点值 是否可以 My XML
  • 使用Unity时实体框架错误

    在尝试解决我的服务类时 我收到一个错误DbContext无法构造 因为它是一个抽象类 错误消息在这里 Unity Exceptions ResolutionFailedException Resolution of the dependen
  • 为什么 Json 要求 Junit 测试没有参数构造函数?

    我在使用 Jackson 反序列化 JSON 字符串时遇到问题 我收到错误 com fasterxml jackson databind JsonMappingException 找不到类型 简单类型 类RatingDMO 的合适构造函数
  • 在 elementtree 中查找并替换文本

    我对编程和Python非常陌生 我正在尝试查找并替换 xml 文件中的文本 这是我的 xml 文件