空のXMLファイルを認識しますか?

空のXMLファイルを認識しますか?

報告目的ですべての空のXMLファイル名を識別し、それをテキストファイルに書き込む必要があります。ここで空であることは、xmlファイルに一般的なヘッダータグがあり、<?xml version="1.0" encoding="UTF-8"?>その後に空のオープンタグとクローズタグがあることを意味します。

サンプルファイル:1)

<?xml version="1.0" encoding="UTF-8"?>
<STBTests>
</STBTests>

2)

<?xml version="1.0" encoding="UTF-8"?>
<UMTTests>
</UMTTests>

それ以外は、xmlファイルにデータがありません。この問題を解決する方法に関する提案があれば良いでしょう。

ベストアンサー1

これを試してみてください表現する:

#!/bin/sh

for xml in *.xml; do
    bool=$(xmllint --xpath 'count(//*)=1 and string-length(//*[1])=1' "$xml")
    if [ $bool = true ]; then
        echo "$xml" >> xml_list_files
    fi
done

cat xml_list_files

この式は、ファイルにノードが1つだけあり、テキストコンテンツがないかどうかをテストします。この場合、コマンドは次を返します。true

おすすめ記事