XML 是一種標籤語言,最主要的用途是用來作資料交換;每個XML 文件為純文字檔,需符合一定的規範。 本題請各位寫一支程式幫忙檢查XML文件是否符合以下四種規則,違反任一項規則此XML文件就視為不合法。
標籤有以下三種組合
1.<標籤名稱>中間沒有任何空白
2.</標籤名稱>中間沒有任何空白
3.<標籤名稱/>中間沒有任何空白
4.<標籤名稱 屬性設定> 標籤名稱和屬性設定(只會有一組屬性設定)中間夾一個空白
<, >, / 是特定的符號只會出現在標籤中,不會出現在XML文件的其他部分,測試資料均會符合以上的原則,程式不必檢查。
標籤規則如下:
1.標籤和標籤之間不能交叉重疊。
例如:
<TAG1><TAG2> 1234 </TAG2></TAG1> (O)
<TAG1><TAG2> 1234 </TAG1></TAG2> (X)
2.有始有終,每個開頭標籤一定要有結尾標籤。例如:文件中如果出現<TAG1>之後就一定要有</TAG1>
<TAG1><TAG2>1234</TAG2></TAG1> (O)
<TAG1> <TAG2>1234</TAG2> (X)
3.開頭標籤和結尾標籤之間若沒有值,可以用開頭標籤加上/取代表示,也就是 <TAG1></TAG1>可以直接用<TAG1/>表示。
<TAG1></TAG1> (O)
<TAG1/> (O)
4.標籤有屬性,屬性值一定要用雙引號框住,且屬性與屬性值間用等號連接,不可有空白。例如:
<TAG1 NAME="ABC2"></TAG1> (O)
<TAG1 NAME=ABC2></TAG1> (X)
<TAG1 NAME="ABC2></TAG1> (X)
輸入檔說明
為簡化問題規範測試資料範圍如下:1.標籤名稱長度不超過 32 個字元;2.一份文件中最多出現 256 個的標籤;3.標籤名稱,屬性名稱,屬性質一律由大寫英文字母或數字所組成。
輸入檔包含數筆測試資料,每筆測試資料的第一行會有一個整數N (N>=0) , 代表以下有 N 行是XML文件;如果 N=0 表示測試資料結束。
輸出檔說明
如果該筆測試資料通過題目的標籤規則檢查,則輸出一個 1; 否則輸出一個 0,每筆輸出資料均需換行。
範例輸入
1
<TAG1><TAG2></TAG1></TAG2>
3
<TAG1>
<TAG3/>
</TAG1>
2
<TAG1 NAME ="123">
</TAG1>
0
範例輸出
0
1
0