![XMLファイルでnull値を識別し、終了コマンドを返しますか? [閉鎖]](https://linux33.com/image/179949/XML%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A7null%E5%80%A4%E3%82%92%E8%AD%98%E5%88%A5%E3%81%97%E3%80%81%E7%B5%82%E4%BA%86%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
たとえば、「NAME」の作成者の「VALUE」が含まれ、担当者が空のXMLファイルなどです。主な目的は、NULL値を持つXMLファイルを見つけるために使用できるチェックを実装することです。したがって、スクリプトへの入力がgit commit(対応するリポジトリ内のすべてのファイル)またはgit commit(ファイル名)になるようにgitフック(事前コミット)として使用できるスクリプトを生成する方法はありますか?その後、XMLファイルにNULL値がある場合、スクリプトは送信を許可しないでください。
<?xml version="1.0" encoding="utf-8"?>
<PACKAGE format-rev="7" prog-version="2020.2.98572" xmlns=https..." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<INFORMATION format-rev="2" xsi:type="packageInfo">
<ATTRIBUTES>
<ATTRIBUTE xsi:type="attributeInst">
<NAME xsi:type="string">Type</NAME>
<VALUE xsi:type="string">MANUAL</VALUE>
</ATTRIBUTE>
<ATTRIBUTE xsi:type="attributeInst">
<NAME xsi:type="string">Severity</NAME>
<VALUE xsi:type="string">Normal</VALUE>
<ATTRIBUTE xsi:type="attributeInst">
<NAME xsi:type="string">Author</NAME>
<VALUE xsi:type="string"/>
</ATTRIBUTE>
<ATTRIBUTE xsi:type="attributeInst">
<NAME xsi:type="string">Assignee(s)</NAME>
<VALUE xsi:type="string"/>
</ATTRIBUTES>
以下に示すよりも良い方法はありますか?ティア
def xmlvalidator():
dirlist = []
dirlist.append(os.getcwd().replace("\\","/"))
filelists = filelist(dirlist)
Flagvallists = []
for filename in filelists:
xtree = et.parse(filename)
root = xtree.getroot()
xroot = root[0][0]
flag = 0
flagval = []
for i in range(len(xroot)):
#xroot here should ATTRIBUTES (ATTRIBUTE IN ATTRIBUTES)
s_name = xroot[i][0].text
s_value = xroot[i][1].text
if s_value == None:
flagval.append(s_name)
flag = 1
if flag==1:
flagval.append(filename)
Flagvallists.append(flagval)
#sys.exit(1)
#return True
return Flagvallists
編集:@Paul_Pedantに感謝します。シンプルで素晴らしいソリューションのように見えますが、どのように入力がgit commit呼び出しの入力と同じになるのですか?ファイル名(A.xml)の代わりに
if grep "<VALUE[^>]*/>" A.xml; then
echo errors found
else
echo not found
fi