テンプレート XML ファイルがあり、プログラムに与えられた入力に基づいて、新しい XML ファイルを生成する必要があります。テンプレートには、入力データに基づいて繰り返す必要があるセクションがあります。しかし、これらのセクションの構造や、ネストのレベルがいくつあるかは必ずしもわかりません。テンプレートファイルを任意の方法で読み込む方法がわかりません。テンプレートファイルにデータを入力してから出力できます。テンプレート ファイルの一部を次に示します。
<Target_Table>
<Target_Name>SF1_T1</Target_Name>
<Target_Mode>
<REP>
<Target_Location_To_Repeat>
<XLocation>nextXREL</XLocation>
<YLocation>nextYREL</YLocation>
</Target_Location_To_Repeat>
<Target_Location_To_Repeat>
<XLocation>nextXREL</XLocation>
<YLocation>nextYREL</YLocation>
</Target_Location_To_Repeat>
</REP>
</Target_Mode>
<Target_Repetitions>1</Target_Repetitions>
<Meas_Window>
<Window_Size>
<XLocation>FOV</XLocation>
<YLocation>FOV</YLocation>
</Window_Size>
<Window_Location>
<XLocation>firstXREL</XLocation>
<YLocation>firstYREL</YLocation>
</Window_Location>
</Meas_Window>
<Box_Orientation>90</Box_Orientation>
<First_Feature Value="Space" />
<Meas_Params_Definition>
<Number_Of_Lines Value="Auto" />
<Number_Of_Pixels_Per_Line Value="Auto" />
<Averaging_Factor Value="1" />
</Meas_Params_Definition>
<Number_Of_Edges>1</Number_Of_Edges>
<Edge_Pair>
<Edge_Pair_Couple>
<First_Edge>1</First_Edge>
<Second_Edge>1</Second_Edge>
</Edge_Pair_Couple>
<Nominal_Corrected_Value>0</Nominal_Corrected_Value>
</Edge_Pair>
<Categories>
<Material_Type />
<Meas_Type />
<Category_Type />
<Other_Type />
</Categories>
<Bias>0</Bias>
<Template_Target_Name>SF_IMAQ_Template_Target</Template_Target_Name>
<Template_Target_PPL>
<Process>PC2</Process>
<Product>PD2</Product>
<Layer>L2</Layer>
</Template_Target_PPL>
<Meas_Auto_Box>
<Error_Code>0</Error_Code>
<Measured_CD>0</Measured_CD>
<Constant_NM2Pix>true</Constant_NM2Pix>
</Meas_Auto_Box>
<Meas_Box_Pix_Size_X>PixelSize</Meas_Box_Pix_Size_X>
<Macro_CD>0</Macro_CD>
</Target_Table>
Target_Table セクション全体を複数回繰り返す必要があり、各 Target_Table 内で REP セクションを複数回繰り返す必要があります。テンプレートが変更された場合 (たとえば、ネストのレベルが追加された場合) にプログラムを変更する必要がないように、プログラムを作成したいと考えています。しかし、ファイルを読み込んで吐き出すには、ファイルの構造を完全に知っている必要があるように思えます。それは本当ですか、それともここで何か不足していますか? タグが不明でネストのレベルが不明なファイルを読み取るプログラムを作成する方法はありますか?