2015-12-06 78 views
1

我試圖在資源中查找包含background =「@ + id/play_bubble」的實例,並用自定義視圖Bubble替換視圖。Android結構查找和替換XML

所以目前View看起來是這樣的:

<View 
    android:id="@+id/obstacle3" 
    android:layout_height="@dimen/obstacle_width" 
    android:layout_width="@dimen/obstacle_width" 
    android:background="@drawable/play_bubble" 
    android:layout_alignParentLeft="true" 
    android:layout_above="@id/obstacle2" /> 

我希望它查找包含某種背景的所有視圖對象,不管其他的屬性。我沒有得到任何結果。

我的最終結果替換後應該是這樣的:

<Bubble 
    android:id="@+id/obstacle3" 
    android:layout_height="@dimen/obstacle_width" 
    android:layout_width="@dimen/obstacle_width" 
    android:background="@drawable/play_bubble" 
    android:layout_alignParentLeft="true" 
    android:layout_above="@id/obstacle2" /> 

任何幫助深表感謝。

編輯:

所以這裏是我正在處理的接口。我對所有的正則表達式並不熟悉,所以我不確定是否正確地輸入了正確的東西,但它沒有返回任何結果。 Find/Replace

+0

什麼XML解析器? – sln

+0

它呢? – cdalsanto

+0

使用XML解析器怎麼樣? – sln

回答

2

既然你提到簡單的查找/替換,這個正則表達式應該這樣做。

查找:<View(\s+[^>]*?)background="@\+id/play_bubble"([^>]*?/>)
替換:<Bubble$1background="something_new"$2

格式化:

<View 
(         # (1 start) 
     \s+ 
     [^>]*? 
)         # (1 end) 
background="@\+id/play_bubble" 
(         # (2 start) 
     [^>]*? 
     /> 
)         # (2 end) 
+0

細分很好,但我個人不知道這是什麼或我將如何應用它。它是XPath嗎?是某種XSLT? – Mike

+0

@Mike它是一個正則表達式查找替換... –

+0

@ cricket_007我不想聽起來像一個破碎的記錄,但你怎麼實際使用它?我保證我不會變得困難。我仍然不明白你寫的答案。 – Mike