【发布时间】:2011-04-05 05:25:10
【问题描述】:
好的,我有一种情况,我需要将标签添加到给定 xpath 的某个其他标签。
示例 xml:
<?xml version="1.0" encoding="UTF-8"?>
<Assets>
<asset name="Adham">
<general>>
<services>
<land/>
<refuel/>
</services>
</general>
</asset>
<asset name="Test">
<general>
<Something/>
</general>
</asset>
</Assets>
我想为这两个资产添加一个<missions> 标签。但是,第二个资产缺少我要添加的父 <services> 标签。每个资产标签都存储在一个变量中(比如 node1、node2)。
我有以下 xpath:xpath1 = services/missions,由于我的程序的工作方式,我不能简单地以不同的形式存储(即我没有地方只存储 services)
我需要检查任务标签是否已经存在,如果存在,则什么也不做。如果标签不存在,我需要创建它。如果它的父级不存在,我也需要创建它。
我怎样才能简单地通过使用 xpath 字符串来做到这一点?
编辑:我想将所有这些都基于一个布尔值:即 val = true,然后在必要时创建标签(和父标签)。如果为假,则删除标签。
(我没有其他方法可以引用我需要的标签(因为我有多层功能来大规模自动化这个过程,你可以在这里查看我之前的问题Python Lxml: Adding and deleting tags))。
编辑编辑:另一个问题:
我没有包含要添加的元素的父级的变量,只有一个包含<asset> 对象的变量。我正在尝试使用 xpath 和指向 ` 标记的变量来获取我想要的节点的父节点。
Edit edit 编辑:不管上面的,我将通过缩短 xpath 指向父项,并使用变量名来引用每个项目来解决这个问题。
【问题讨论】: