2013-11-28 80 views
1

我有一個XML文件,其中包含一些標記和值。解析XML文件並填充來自其他文件的一些數據

<component id="system.core0.icache" name="icache"> 
    <param name="icache_config" value="65536,64,2,1,1,2,64,0"/> 
    <stat name="read_accesses" value="526692.38"/> 
    <stat name="read_misses" value="2646.34"/>         
     <stat name="conflicts" value="2404.67"/> 
</component> 
<component id="system.core0.dcache" name="dcache"> 
    <param name="dcache_config" value="65536,64,2,1,1,2,64,0"/> 
    <stat name="read_accesses" value="326692.38"/> 
    <stat name="read_misses" value="1646.34"/>         
     <stat name="conflicts" value="4404.67"/> 
</component> 

在另一個文件中,我使用另一種格式的值。例如

L1D:size 65536 
L1I:size 65536 
L1D:access 526692.38 
L1D:miss 2646.34 
L1D:conflict 2404.67 
L1I:access 326692.38 
L1I:miss 1646.34 
L1I:conflict 4404.67 

我想要做的就是寫一個解析器,基於字典,從統計文件中複製設置的XML文件。例如

L1D:size -> component.id = "system.core0.dcache" , fill the first value of param "dcache_config" 

L1I:access -> component.id = "system.core0.icache" , fill the stat value of "read_accesses" 

我已經搜索,但似乎解析XML文件意味着從XML文件中提取值。但我不想那樣。

我該怎麼做?

回答

1

聽起來像SAX解析器的解決方案。

while next element 
    compare attributes and content 
    if necessary then replace 
    output 
end 

Ruby或Perl會想到作爲工具。