我想解析一个编码很差的XML并输出标签的节点名称和内容(只有存在的时候),并且只有当string name = content> 30天)。Python ElementTree - 搜索儿童/孙儿写作不好的XML
到目前为止,我可以使用ElementTree搜索子元素,但是我需要帮助解决嵌套不良的信息。我无法更改XML,因为它是供应商提供的报告。我是一个完整的新手,所以请指导我需要做什么或提供更好的帮助。提前致谢。
示例文件:
<?xml version="1.0" encoding="UTF-8"?>
<ReportSection>
<ReportHead>
<Criteria>
<HeadStuff value=Dont Care>
</HeadStuff>
</Criteria>
</ReportHead>
<ReportBody>
<ReportSection name="UpTime" category="rule">
<ReportSection name="NodeName.domain.net" category="node">
<String name="node">NodeName.domain.net</String>
<String name="typeName">Windows Server</String>
<OID>-1y2p0ij32e8c8:-1y2p0idhghwg6</OID>
<ReportSection name="UpTime" category="element">
<ReportSection name="2015-09-20 18:50:10.0" category="version">
<String name="version">UpTime</String>
<OID>-1y2p0ij32e8cj:-1y2p0ibspofhp</OID>
<Integer name="changeType">2</Integer>
<String name="changeTypeName">Modified</String>
<Timestamp name="changeTime" displayvalue="9/20/15 6:50 PM">1442793010000</Timestamp>
<ReportSection name="versionContent" category="versionContent">
<String name="content">12 day(s), 7 hour(s), 33 minute(s), 8 second(s)</String>
<String name="content"></String>
</ReportSection>
</ReportSection>
</ReportSection>
</ReportSection>
</ReportSection>
</ReportBody>
</ReportSection>
什么是你想要的结果?你有尝试过什么吗?谢谢.. – alecxe
我想返回“节点”值“NodeName.domain.net”,如果值大于30,则返回“12天(s)”的内容。##从xml.etree导入解析器 进口ElementTree的作为等 ##设置xml文件并解析它 根= et.parse( 'C:\\温度\\扫描\\ report.xml将') 用于SEC1在root.iter(): \t Sec1Name = Sec1.attrib.get('name') \t print(Sec1Name) – KFrizz