-1
xmlファイルの例を次に示します。houseNumは連続していません。私は0,1,3の代わりに、0、3であることを.textセクションを変更したいlxmlを使用してXMLファイルのelement.textを変更する方法
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfHouse>
<XmlForm>
<houseNum>0</houseNum>
<plan1>
<coord>
<X> 1.2 </X>
<Y> 2.1 </Y>
<Z> 3.0 </Z>
</coord>
<color>
<R> 255 </R>
<G> 0 </G>
<B> 0 </B>
</color>
</plan1>
<plan2>
<coord>
<X> 21.2 </X>
<Y> 22.1 </Y>
<Z> 31.0 </Z>
</coord>
<color>
<R> 255 </R>
<G> 0 </G>
<B> 0 </B>
</color>
</plan2>
</XmlForm>
<XmlForm>
<houseNum>3</houseNum>
<plan1>
<coord>
<X> 1.2 </X>
<Y> 2.1 </Y>
<Z> 3.0 </Z>
</coord>
<color>
<R> 255 </R>
<G> 0 </G>
<B> 0 </B>
</color>
</plan1>
<plan2>
<coord>
<X> 21.2 </X>
<Y> 22.1 </Y>
<Z> 31.0 </Z>
</coord>
<color>
<R> 255 </R>
<G> 0 </G>
<B> 0 </B>
</color>
</plan2>
</XmlForm>
<XmlForm>
<houseNum>5</houseNum>
<plan1>
<coord>
<X> 11.2 </X>
<Y> 12.1 </Y>
<Z> 13.0 </Z>
</coord>
<color>
<R> 255 </R>
<G> 255 </G>
<B> 0 </B>
</color>
</plan1>
<plan2>
<coord>
<X> 211.2 </X>
<Y> 212.1 </Y>
<Z> 311.0 </Z>
</coord>
<color>
<R> 255 </R>
<G> 0 </G>
<B> 255 </B>
</color>
</plan2>
</XmlForm>
</ArrayOfHouse>
、5.Hereは誤った結果を生成しlxmlのを使用して、私のスクリプトです。
def Rename_Elem_In_Xml_File(xml_file, index_start, index_end):
# Parse from the xml string file
tree = etree.parse(xml_file)
#Rename the elements
root = tree.getroot()
elementlist = [e for e in root.iter('houseNum')]
for index_element in range(1, len(elementlist)):
try:
if(index_element>index_start):
elementlist[index_element].text=index_element
print(elementlist[index_element].text)
except:
print(' except ')
print(elementlist[index_element].text)
file = etree.tostring(root).decode("utf-8")
print(file)
私は要素を繰り返し、テキストを変更しようとします。このスクリプトは、テキストとタグの先頭を削除します。