在 Python 中替换 XML 元素

2024-03-05

我试图用一组新的坐标替换 bbox 内部的元素。

我的代码:

    # import element tree
    import xml.etree.ElementTree as ET 


    #import xml file
    tree = ET.parse('C:/highway.xml')
    root = tree.getroot()

    #replace bounding box with new coordinates

    elem = tree.findall('bbox')
    elem.txt = '40.5,41.5,-12.0,-1.2'

我的 xml 文件:

   <geoEtl>
    <source>
        <server>localhost</server>
        <port>xxxx</port>
        <db>vxxx</db>
        <user>xxxx</user>
        <passwd>xxxx</passwd>
    </source>
    <targetDir>/home/firstuser/</targetDir>
    <bbox>-52.50,-1.9,52.45,-1.85</bbox>
    <extractions>
        <extraction>
            <table>geo_db_roads</table>
            <outputName>highways</outputName>
            <filter>highway = 'motorway'</filter>
            <geometry>way</geometry>
            <fields>
                <field>name</field>             
            </fields>
        </extraction>
    </extractions>
   </geoEtl>

已经尝试了多种方法来完成我在这里找到的事情,但它似乎不起作用。谢谢。

我收到的错误如下:

line 20, in <module> elem.txt = '40.5,41.5,-12.0,-1.2' AttributeError: 'list' object has no attribute 'txt' –

The findall http://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findall函数,顾名思义,发现all匹配元素,而不仅仅是一个。

所以,在此之后:

elem = tree.findall('bbox')

elem是一个列表Elements。并且,与任何其他列表一样,这个:

elem.txt = '40.5,41.5,-12.0,-1.2'

会给你一个错误:

AttributeError: 'list' object has no attribute 'txt'

如果您想对列表中的每个成员执行某些操作,则必须对其进行循环:

elems = tree.findall('bbox')
for elem in elems:
    elem.txt = '40.5,41.5,-12.0,-1.2'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中替换 XML 元素 的相关文章

随机推荐

  • Firestore 查询是否可以使用其中一个字段或 whereFields 字段?

    我想要一个像这样的查询 db collection Bookings whereField servicer isEqualTo userID customer isEqualTo userID 它不会有两次不同的读取 而只会有一次 并且它
  • 如何检查 UITextField 何时发生变化?

    我试图检查文本字段何时发生变化 也相当于用于 textView 的函数 textViewDidChange到目前为止我已经这样做了 func textFieldDidBeginEditing textField UITextField if
  • 在 React Native 中生成发布 apk

    我通过本机反应创建了一个简单的应用程序 现在完成部署后 我想制作发布 apk 以便根据它的官方网站 https facebook github io react native docs signed apk android我已经创建了密钥
  • Cypress.io 测试中未发生拖放

    我试图拖动一个元素 然后将其放入放置区域 但测试并未在 Cypress io 中执行拖放操作 如果有人可以就这里的潜在问题提出建议 那将非常有帮助 没有抛出错误 但是这里仍然没有发生拖放 describe Verify the drag a
  • Ruby on Rails 4 javascript 未执行

    我有一个习惯js文件输入app assets javascripts 这是js文件 app assets javascripts contacts js document ready function I ve already tried
  • 如何将所有日志从hibernate和spring重定向到log4j2?

    我使用下一个技术堆栈构建我的 superWebApp persistence provider Hibernate 4 x webMvc and beans container Spring 4 x web containter Tomca
  • @ResourceMapping 接受来自 Ajax 请求的 JSON

    我正在搜索如何解释 Spring Portlet MVC 中 ResourceMapping 中的 JSON 参数 当我添加 RequestBody时 我收到消息 不支持 RequestBody 真的卡在这个上了 我有这个 查看侧面
  • 为什么在回调中调用 ViewModel 时会发生重组?

    我完全混淆了撰写概念 我有一个代码 Composable fun HomeScreen viewModel HomeViewModel getViewModel Scaffold val isTimeEnable by viewModel
  • MERN Stack - Express 和 React 在同一端口上?

    我正在开发一个使用 MERN MongoDB Express React Node 堆栈的项目 在将数据从 React 组件内的表单发布到 Node js 中定义的 API 端点时遇到问题 当我提交表单时 浏览器仅显示 无法发布 错误 我非
  • Hibernate 说该表不存在,但它确实存在

    我遇到 Hibernate 抛出以下错误的问题 com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException Table Library book doesn t exist 我的依赖设
  • 如何将 iOS 应用程序限制为仅适用于 4 英寸屏幕设备?

    Xcode 中是否有一个设置可以让我声明我的应用程序仅支持 4 英寸屏幕设备 iPhone 5 和最新的 iPod Touch Nope 由于 iOS 7 支持 3 5 英寸屏幕的设备 因此您不能使用 only support iOS x
  • PyTorch 无法检测 CUDA

    我在 PyTorch 上运行 CNN torch cuda is available 函数返回 false 并且未检测到 GPU 不过 我可以使用 GPU 运行 Keras 模型 这是我的系统信息 操作系统 Ubuntu 18 04 3 P
  • 为什么双向 ManyToOne 会导致 Hibernate 中的循环依赖?

    我的项目中有实体 基于Spring Boot Hibernate Entity Table name user account public class UserAccount Id GeneratedValue strategy Gene
  • Angularjs 在控制器之间共享方法

    我有一个应用程序 它在一个页面 主页 上显示新闻提要 在另一个页面上仅显示用户的提要 用户个人资料页面 两个页面的外观和行为方式相同 内容的变化是由于调用了不同的URL 在AngularJS中如何解决这个问题 我有一个家庭控制器 它具有用于
  • 为什么使用 redux 来实现不可变状态

    我正在学习 redux 并且正在努力理解为什么状态必须是不可变的 您能否为我提供一个示例 最好是代码 其中打破不可变合约会导致不那么明显的副作用 Redux 最初是为了演示 时间旅行调试 的理念而发明的 能够在分派操作的历史记录中来回查看
  • Eclipse:如何刷新整个工作区? F5 不行

    我有一个包含一堆 java 项目的工作区 如果我去File gt Refresh 它并没有真正刷新任何内容 可能是当前选择的项目 如何让 eclipse 刷新all的项目 It will indeed only refresh the cu
  • Java8的Collection.parallelStream如何工作?

    Collection类带有一个新方法 parallelStream 在 Java SDK 8 中 显然 这种新方法提供了一种并行消费集合的机制 但是 我想知道Java是如何实现这种并行性的 其根本机制是什么 它只是多线程执行吗 或者 for
  • 为什么 WCF 有时会在生成的代理类型末尾添加“Field”?

    基本上 我有一个带有成员 X 和 Y 的服务器端类型 Foo 每当我使用 Visual Studio 的 添加服务器引用 时 我都会看到 WSDL 和生成的代理都将单词 Field 附加到所有成员并更改第一个字母的大小写 IE 中 X 和
  • 多处理 - 使用管理器命名空间来节省内存

    我有几个进程 每个进程都完成需要单个大 numpy 数组的任务 这只是被读取 线程正在搜索适当的值 如果每个进程都加载数据 我会收到内存错误 因此 我试图通过使用管理器在进程之间共享相同的数组来最小化内存使用量 但是我仍然收到内存错误 我可
  • 在 Python 中替换 XML 元素

    我试图用一组新的坐标替换 bbox 内部的元素 我的代码 import element tree import xml etree ElementTree as ET import xml file tree ET parse C high