python,给一个XML格式文件如:
发布网友
发布时间:2022-05-03 03:42
我来回答
共3个回答
热心网友
时间:2022-04-18 19:38
你这个xml不标准,真正的xml需要最外面有一个<aa>和</aaa>包裹着,如果是标准的,可用如下
id = 1
import xml.dom.minidom
dom = xml.dom.minidom.parse("data.xml")
for i in dom.getElementsByTagName('pattern'):
if(i.childNodes[1].firstChild.data == str(id)): print i.toxml()
热心网友
时间:2022-04-18 20:56
假设这个文件为test.xml,与以下程序(prxml.py)放在同一目录。
###### prxml.py #######
# -*- coding: utf-8 -*-
def printc(file, id):
fin = open(file)
f = fin.readlines()
switch = 0
flen = len(f)
for i in range(0, flen):
if '<pattern>' in f[i]:
if '<id>' + str(id) + '</id>' in f[i+1]:
switch = 1
continue
elif '</pattern>' in f[i]:
switch = 0
continue
if switch:
print f[i]
file = 'test.xml'
id = int(input('Please enter ID:\n'))
printc(file, id)
print 'Done!'
热心网友
时间:2022-04-18 22:30
python 3.2版
t='''
<root>
<pattern>
<id>1</id>
<name>lili</name>
<case>
<condition>前有狼</condition>
<action>后打虎</action>
</case>
</pattern>
<pattern>
<id>2</id>
<name>haha</name>
<case>
<condition>前有虎</condition>
<action>后打狼</action>
</case>
</pattern>
</root>
'''
from xml.dom.minidom import parseString
d=parseString(t)
for id in d.getElementsByTagName("id"):
if int(id.childNodes.item(0).data)==1:
print(id.parentNode.toxml())
break
===========
>>>
<pattern>
<id>1</id>
<name>lili</name>
<case>
<condition>前有狼</condition>
<action>后打虎</action>
</case>
</pattern>