抽出してxlsファイルに書き込みたいいくつかのテスト制限を持つXMLファイルがあります。
<TestLimitSet>
<AppName>Test Application</AppName>
<Name>High-Speed test app</Name>
<SummaryName>limit set 1.0</SummaryName>
<SharedReference>DUT Specification Version 1.0</SharedReference>
<TestLimits>
<!--########## Host Electrical Specification ##########-->
<!--Host Strobe Frequency-->
<TestLimit>
<ID>1101, 1102</ID>
<SummaryName>Host Strobe Frequency</SummaryName>
<SummaryDescription>The frequency must within the specification.</SummaryDescription>
<Reference>Section 3.</Reference>
<PrecisionLevel>0.01E+6</PrecisionLevel>
<PassLimits>
<Type>RANGE_INCLUSIVE</Type>
<Min>239.88E+6</Min>
<Max>240.12E+6</Max>
</PassLimits>
</TestLimit>
<!--Host Data Slew Rate-->
<TestLimit>
<ID>1201</ID>
<SummaryName>Host Data Slew Rate</SummaryName>
<SummaryDescription>Slew rate must within the specification.</SummaryDescription>
<Reference>Section 4.</Reference>
<PrecisionLevel>0.001</PrecisionLevel>
<PassLimits>
<Type>RANGE_INCLUSIVE</Type>
<Min>0.7</Min>
<Max>2.0</Max>
</PassLimits>
</TestLimit>
<!--Host Strobe Slew Rate-->
<TestLimit>
<ID>1202</ID>
<SummaryName>Host Strobe Slew Rate</SummaryName>
<SummaryDescription>Slew rate must within the specification.</SummaryDescription>
<Reference>Section 5.</Reference>
<PrecisionLevel>0.001</PrecisionLevel>
<PassLimits>
<Type>RANGE_INCLUSIVE</Type>
<Min>0.7</Min>
</PassLimits>
</TestLimit>
</TestLimits>
次の Python コードを使用してデータを抽出します。
from xml.etree import ElementTree
document = ElementTree.parse( 'limitset.lim' )
#
for testname in document.findall( 'TestLimits/TestLimit/SummaryName' ):
print 'TestName:', testname.text
limits = document.find( 'TestLimits/TestLimit/PassLimits' )
for node in limits.getchildren():
print node.tag, node.text
そして、これは出力です:
TestName: Host Strobe Frequency
Type RANGE_INCLUSIVE
Min 239.88E+6
Max 240.12E+6
TestName: Host Data Slew Rate
Type RANGE_INCLUSIVE
Min 239.88E+6
Max 240.12E+6
TestName: Host Strobe Slew Rate
Type RANGE_INCLUSIVE
Min 239.88E+6
Max 240.12E+6
問題は、"Min" と "Max" が、テスト名の下の適切なセクションではなく、常に XML の最初のノードから取得されることです。誰かが問題を解決するのを助けることができますか?