<p>请参阅此回复:<a href="https://stackoverflow.com/questions/5878055/regular-expressions-to-parse-template-tags-in-xml/5878126#5878126">Regular Expressions to parse template tags in XML</a></p>
<p>你的项目演示。。。在</p>
<pre><code>from xml.etree import ElementTree
import re
def proper_SN(elem):
if re.search('\d{6}', elem.text):
return True
return False
tree = ElementTree.parse('data.xml')
rows = tree.getiterator('SerialNumber')
for row in rows:
print "SerialNumber: %s Passed = %s" % (row.text, proper_SN(row))
</code></pre>
<p>运行这个。。。在</p>
^{pr2}$
<h2>编辑</h2>
<p>我不确定XML会如何改变。。。假设您更改了<code>DeviceData</code>元素。。。在</p>
<pre><code> <Data>
<DeviceData>
<Info>
<SerialNumber>154236</SerialNumber>
<EngineVersion>12.0.4.13</EngineVersion>
<MediaType>100BaseT</MediaType>
<Ethernet>Y</Ethernet>
<Wireless>N</Wireless>
<Mac>00:25:F6:25:K9</Mac>
</Info>
</DeviceData>
</Data>
</code></pre>
<p>使用简化的脚本。。。在</p>
<pre><code>from xml.etree import ElementTree
import re
def proper_SN(elem):
if re.search('\d{6}', elem.text):
return True
return False
tree = ElementTree.parse('data.xml')
serial = tree.find('DeviceData/Info/SerialNumber').text
engine = tree.find('DeviceData/Info/EngineVersion').text
media = tree.find('DeviceData/Info/MediaType').text
if proper_SN:
serstr = "good"
else:
serstr = "bad"
print "Found a %s serial number (%s), with engine %s and media %s" % (serstr, serial, engine, media)
</code></pre>
<p>我明白了</p>
<pre><code>[mpenning@hotcoffee tmp]$ python parse.py
Found a good serial number (154236), with engine 12.0.4.13 and media 100BaseT
[mpenning@hotcoffee tmp]$
</code></pre>