2013-11-02 60 views
9

是的,我查了一下!評論在佈局XML不工作

<!-- comment --> 

似乎是正確的選擇, 但我得到了Android的工作室 搖籃的錯誤:錯誤解析XML:沒有很好地形成(標記無效)

當我做這個

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    <!-- android:background="?android:attr/selectableItemBackground" --> 
    android:id="@+id/imageButton" 
    android:layout_alignParentTop="true" 
    android:src="@drawable/gfx_select_medium" 
    android:layout_marginRight="22dp"/> 

任何幫助表示讚賞,thx!

+0

移動它的ImageButton的外面,並嘗試 – Raghunandan

+0

請張貼整個XML,也許錯誤是在你的代碼而不是評論。 – NitroNbg

+0

@NitroNbg相信我。你不能在標籤xml – Blackbelt

回答

8

XML註釋不能放在標記標記內。將註釋移動到ImageButton標籤的上方或下方。

這裏的spec參考,並強調說:

註釋可以在文檔中的任何位置出現外其他標記

markup被定義爲:

標記採用開始標記的形式,結束標籤,空元素標籤,實體引用,字符引用,註釋,CDATA部分分隔符,文檔類型聲明,處理指令,XML聲明,文本聲明以及位於文檔實體頂層的任何空白區域也就是說,在文檔元素之外,而不是在任何其他標記之內)

+0

的內部發表評論是的,但爲什麼不可能? – Blackbelt

4

它不只是AS。您需要將您的意見您的結束標記</>外側,以便做類似

<ImageButton 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/imageButton" 
android:layout_alignParentTop="true" 
android:src="@drawable/gfx_select_medium" 
android:layout_marginRight="22dp"/>  
<!-- android:background="?android:attr/selectableItemBackground" --> 

查看來自W3 this linkthis one有關XML註釋。簡而言之,它說

[定義:評論可能出現在其他標記之外的文檔中的任何地方;

通知

在其他標記之外

從所述第一連桿和

[定義:標記需要起始標籤的形式,結束標籤,...

從第二個鏈接

+0

因此佈局文件中的任何位置都不起作用,因爲所有內容都位於第一級。這沒什麼用處! – steveh

+0

@steveh不,他們**可以**在佈局文件中,如答案中所示。他們不能在其他節點的開始/結束標籤內。但是它們**可以在根元素的開始/結束標記內。 – codeMagic

2

你應該知道,一個XML文件中的註釋被認爲XMLCOMMENT類型的節點,因此,如果您加載XML文件的節點會得到加載,它是由你來避免他們或者在解析加載的內容時對其進行過濾。

所以,這將是正確的格式,

<ImageButton 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/imageButton" 
android:layout_alignParentTop="true" 
android:src="@drawable/gfx_select_medium" 
android:layout_marginRight="22dp"/>  
<!-- android:background="?android:attr/selectableItemBackground" --> 

或者,你可以看到這個link ..