将带有属性的标签附加到XML中

时间:2019-01-03 08:29:57

标签: python xml elementtree minidom

我正在使用minidom解析xml。我要实现的是找到具有特定属性的所有标签,然后在其下面附加一个具有不同属性值的新标签。对于例如

让我们说标签是:

stream.parallelize()

我找到了所有具有属性值<PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntDataRegion" VALUE="XYZ"/> 的标签。现在,我想在其下方附加一个标签。

NAME = "EntReg"

标记名称和值将是静态的,即我想在<PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntRoutingDataSelected" VALUE="yes"/> 属性PROPVAL具有值NAME的地方附加相同的标记。

到目前为止,我已经写了这篇文章,发现了所有EntDataRegion标签:

PROPVAL

修改

XML结构如下:

xmldoc = minidom.parse('test.xml')
prop_val = xmldoc.getElementsByTagName('PROPVAL')
for i in prop_val:
    if i.attributes['NAME'].value == 'PB:EntDataRegion':
        print(i.attributes['VALUE'].value)

该xml具有两个标签<?xml version="1.0" encoding="UTF-8"?> <MOD version="3"> <CLASS> <CLASS COMMENT="" DEFAULTPRIORITY="50"> <PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntDataRegion" VALUE="XYZ"/> <RULE LOCALIZABLE="false"/> <ITEM> <PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="HIDE" VALUE="XYZ"/> </ITEM> </CLASS> <CLASS COMMENT="" DEFAULTPRIORITY="50"> <PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntDataRegion" VALUE="XYZ"/> <RULE LOCALIZABLE="false"/> <ITEM> <PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="HIDE" VALUE="XYZ"/> </ITEM> </CLASS> </CLASS> <CLASS> <ITEM> <PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntDataRegion" VALUE="XYZ"/> <PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntRoutingDataSelected" VALUE="yes"/> </ITEM> </CLASS> </MOD> CLASS。 class标签可以将item标签作为child标签。但是在将项作为子标记之前,它将始终具有一堆<ITEM>标记。

想法是插入

<PROPVAL>

之前

<PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntRoutingDataSelected" VALUE="yes"/>

问题是我可以插入上面的标签。具有item标签的class标签也具有此属性。而我只希望<PROPVAL ISFORMULA="N" LOCALIZABLE="false" NAME="EntDataRegion" VALUE="XYZ"/>标记具有ITEM

时具有此属性

这是我尝试过的:

<PROPVAL NAME="EntDataRegion">

0 个答案:

没有答案