2016-08-30 2 views
0

하위의 텍스트 요소를 목록에있는 값으로 대체하려고합니다.xml 하위 요소 텍스트를 목록의 값으로 바꿉니다. python

aWeight의 텍스트 값을 true로 변경하려고합니다. 나는이 코드로 그것을하려고 노력했다.

elems = dom.findall('aWeight') 
for elem in elems: 
    if user_settings.new_settings[5] == 'true': 
     '<aWeight>'.text = 'true' 

dom.write('output.xml') 

파일을 쓰고 있지만 값은 여전히 ​​false로 유지됩니다. 누구든지 어떤 제안이 있습니까.

답변

0

코드가 노드 값을 변경하기 위해 elem 변수에 액세스하지 않는다는 사실을 알기 때문에 "어디에서"작동해야하는지 알려야합니다. `elems dom.findall = ('aWeight') elems에 대한 ELEM : 경우 ELEM == user_settings.new_settings [5] : ' '는 .text = '

import xml.etree.ElementTree as ET 
elems = ET.fromstring('<weighting><aWeight>false</aWeight><cWeight>true</cWeight></weighting>') 

test_condition = ['false', 'not set', 'bananas'] 

elems2 = elems.findall("aWeight") 
for elem in elems2: 
    print elem.text 
    if elem.text in test_condition: 
     elem.text = 'true' 
    print elem.text 
print ET.tostring(elems) 
+0

안녕 나는로 변경 사실 '이라고 말하면서도 여전히 작동하지 않을 것입니다. –

+0

안녕하세요 @ MarkKelly, 저는 이것을 편집하여 여러분이 의도하는 방식으로 작동해야하는 독립형 조각입니다. –

+0

@ Graham Nicol Hi Graham, 많은 도움이됩니다. 하지만 xml 자식을 목록에 저장된 값과 비교해야합니다. 어떻게 그 일을 할 수 있을지에 대한 아이디어가 있습니까? –

관련 문제