1

私は次のXMLを持っています:

<?xml version="1.0" encoding="UTF-8"?>
<test-report>
<testsuite>
<test name="RegisterConnection1Tests">
<testcase name="testRregisterConnection001"></testcase>
<testcase name="testRegisterConnection002"></testcase>
</test>
<test name="RegisterConnection2Tests">
<testcase name="testRregisterConnection001"></testcase>
<testcase name="testRegisterConnection002"></testcase>
</test>
</testsuite>
</test-report>

そして、私は出力が欲しいです:

RegisterConnection1Tests,testRregisterConnection001
RegisterConnection1Tests,testRregisterConnection002
RegisterConnection2Tests,testRregisterConnection001
RegisterConnection2Tests,testRregisterConnection002

思った通りに子供たちをどうやって見せたらいいのか迷ってしまいました

xmlstarlet sel -t -m 'test-report/testsuite/test' -v '@name' -v '//testcase/@name' -n $1入力するだけですが、動作します:

RegisterConnection1TeststestRregisterConnection001
RegisterConnection2TeststestRregisterConnection001
4

1 に答える 1

2

不足しているカンマを追加するには、別のカンマを追加します-v "','" 2番目の列で、テンプレートと一致する要素からではなく、ルート要素からの絶対xpath式を使用して選択している場合、二重スラッシュは間違っています。テストケースごとに1行が必要なので、テストケース要素を繰り返し処理してから、次のように親要素のname属性を追加します。

xmlstarlet sel -t -m 'test-report/testsuite/test/testcase' -v '../@name' -v "','" -v '@name' -n $1
于 2010-06-18T11:24:23.443 に答える