2016-10-13 4 views
0

csplitのようなCLIツールを使用すると、特定の要素に基づいてXMLファイルを分割できます。グループごとにXMLファイルを分割したい例えば:私たちは、ストリーミングXMLパーサーを使用して比較することによって、これを達成することができます関連ノードのグループごとにXMLを分割

<price> 
    <code>B456</code> 
    <discount>123</discount> 
</price> 

<price> 
    <code>A123</code> 
    <discount>123</discount> 
</price> 
<price> 
    <code>A123</code> 
    <discount>123</discount> 
</price> 

として別のファイル:

<prices> 
    <price> 
    <code>A123</code> 
    <discount>123</discount> 
    </price> 
    <price> 
    <code>A123</code> 
    <discount>123</discount> 
    </price> 
    <price> 
    <code>B456</code> 
    <discount>123</discount> 
    </price> 
</prices> 

はして一つのファイルに分割される必要がありますコード要素の値を前の値と比較し、等しくなければ新しいXMLファイルを生成します。ただし、CLIツールの組み合わせを使用すると効率的な方法が必要です。

答えて

0

あなたは、XML::LibXMLラッパーxshを試すことができます:提案のための

open file.xml ; 
$h := hash code /prices/price ; 
for $code in { keys %$h } { 
    $d := create prices ; 
    xcp xsh:lookup('h', $code) into $d/prices ; 
    save :f concat($code, '.xml') $d ; 
} 
+0

感謝を。私は最後のリリースが2008年であったことを理解していて、それもコンパイルされません。 – silverscreens

+0

今年8月26日にリリースしました。正しいリンクをクリックしましたか? – choroba

関連する問題