0
을 찾을 : <entry key="applications" value="APP_NAME"/>
파이썬 etree - 내가 XML 파일 다음 한 정확히 일치
와`: APP_NAME_2을 즉하기 위해 value
을 변경
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE TaskDefinition PUBLIC "xxx" "yyy">
<TaskDefinition created="time_stamp" formPath="path/sometask.xhtml" id="sample_id" modified="timestamp_b" name="sample_task" resultAction="Delete" subType="subtype_sample_task" type="sample_type">
<Attributes>
<Map>
<entry key="applications" value="APP_NAME"/>
<entry key="aaa" value="true"/>
<entry key="bbb" value="true"/>
<entry key="ccc" value="true"/>
<entry key="ddd" value="true"/>
<entry key="eee" value="Disabled"/>
<entry key="fff"/>
<entry key="ggg"/>
</Map>
</Attributes>
<Description>Description.</Description>
<Owner>
<Reference class="sample_owner_class" id="sample_owner_id" name="sample__owner_name"/>
</Owner>
<Parent>
<Reference class="sample_parent_class" id="sample_parent_id" name="sample_parent_name"/>
</Parent>
</TaskDefinition>
내가 검색 할.
나는 내가이로이 값을 추출 할 수 있습니다 알고
import xml.etree.cElementTree as ET
tree = ET.ElementTree(file='sample.xml')
root = tree.getroot()
print(root[0][0][0].tag, root[0][0][0].attrib)
을하지만,이 경우에 나는 나무에서 THS 항목의 정확한 위치를 알고있다 - 그래서 유연하지 않고, 내가 어떻게 아무 생각이 없다 그것을 바꿔라.
은 또한이 같은 시도 :for app in root.attrib:
if 'applications' in root.attrib:
print(app)
을하지만, 이것은 아무 것도 반환하지 않습니다 이유는, 알아낼 수 없습니다. 예를 거기에 따르고 파이썬 문서에서
:
for rank in root.iter('rank'):
new_rank = int(rank.text) + 1
rank.text = str(new_rank)
rank.set('updated', 'yes')
tree.write('output.xml')
하지만 내가 어떻게 내 예를 들어이를 addjust하는 아무 생각이 없습니다. 이 경우 정규 표현식을 사용하고 싶지 않습니다. 도움을 주시면 감사하겠습니다.
이 <'내가 인쇄'에 (항목)'때 지금은 내가 얻을 ... 너무 간단 보인다 원하는 excatly입니다 0x00000000015C3E08에 'entry'요소가 있습니다 - '정상 값'을 얻을 수 있습니까? – Fangir
아마도 당신이 원하는 것은'print (entry.tag)'입니까? – mzjn
'entry.text'는 요소에 내용이 없기 때문에 비어 있습니다. – mzjn