からデータムを使用している間、私はこの方法でフォーマットされたXMLデータを持っている、項目ごとに1行を印刷:XMLStarlet:親要素
<XML>
<Waveforms Time="01/01/2009 3:00:02 AM">
<WaveformData Channel="I">1, 2, 3, 4, 5, 6 </WaveformData>
<WaveformData Channel="II">9, 8, 7, 6, 5, 4 </WaveformData>
</Waveforms>
<Waveforms Time="01/01/2009 3:00:04 AM">
<WaveformData Channel="I">1, 2, 3, 4, 5, 6 </WaveformData>
<WaveformData Channel="II">9, 8, 7, 6, 5, 4 </WaveformData>
</Waveforms>
</XML>
私はカンマ区切り(テキストファイルにこのデータを解析するためにxmlstarletを使用しようとしています)。所望の出力は次のようになります。
Time Attribute, Channel Attribute, Data
01/01/2009 3:00:02 AM, I, 1, 2, 3, 4, 5, 6
01/01/2009 3:00:02 AM, II, 9, 8, 7, 6, 5, 4
01/01/2009 3:00:02 AM, I, 1, 2, 3, 4, 5, 6
01/01/2009 3:00:02 AM, II, 9, 8, 7, 6, 5, 4
を私が思い付くことができる最高は次のとおりです。
01/01/2009 3:00:02 AM, I, 1, 2, 3, 4, 5, 6, II, 9, 8, 7, 6, 5, 4
01/01/2009 3:00:04 AM, I, 1, 2, 3, 4, 5, 6, II, 9, 8, 7, 6, 5, 4
それは印刷する方法は明らかです。このような結果を与える
xmlstarlet sel -T -t -m //XML/Waveforms -v @Time -o "," -m Waves -v WaveformData/@Channel -o "," -v WaveformData -o "," -b -n testwave2.xml > testwave.txt
1つのWaveformsに対して1行を出力しますが、その親からtime属性を含める場合は、WaveformDataごとに1行を出力する方法ではありません。これはできますか?あるいは、後でバックエンドで修正するためにいくつかスライスして貼り付けますか?
この質問で提案されているコマンドラインと、この質問ドンのテストデータ実際に一緒に働くことはありません。おそらく、逃げられた '波(Waves)'には誤りがありますか? –
...現時点では、私が生成した回答はあなたの*実際のデータに対してはうまくいかないと心配しています。 –
上記の出力を生成するために使用したコードをスピンオフしたようです。唯一の違いは-m波が削除されていることですが、明日まで確認することはできません。実際の質問は、波形データのすべてのセットを解析する時間を取得する方法です。 –