2011-12-07 54 views
1

在groovy中,我想搜索文本(通常是xml結構)並查找忽略列表的出現。使用Groovy從排除列表中查找字符串

例如: 我的不同的搜索數據請求(減少爲了清楚,但大多數是大的):

<CustomerRQ field='a'></CustomerRQ> 
<AddressRQ field='a'></AddressRQ> 

我忽略列表是:

CustomerRQ 
CustomerRS 

基於上述兩個輸入「客戶」和「地址」的請求,我想忽略「客戶」,因爲它位於我的忽略列表中,但我想將「地址」標識爲點擊。

整體意圖是將其用於日誌記錄。我不想根據我的「忽略」列表記錄一些傳入請求,但所有其他人都將被記錄。

這裏有一些僞代碼可能在正確的軌道上,但不是真的。

def list = ["CustomerRQ", "CustomerRS"] 
println(list.contains("<CustomerRQ field='a'>")) 

我不確定,但我認爲在這種情況下封閉將起作用,但學習groovy會在這裏發生。也許一個正則表達式也會起作用。但重要的是在我的所有排除列表中搜索傳入字符串(indexOf,exists ...)。

+0

真的很難看到你想要什麼....你可以用更清晰的解釋你想要達到的目標來編輯問題嗎?你有一小塊XML,你想看看這個XML的nodename是否在你的忽略列表中? –

+0

謝謝@DaveNewton我是一個新來的人,他在社交上使用了stackoverflow。我剛剛意識到你的意思。我會盡量接受我的一些問題。謝謝。 –

+0

@tim_yates是的,這是一小段XML,但真正的XML實際上相當龐大。我想檢測這個「請求」或「響應」是否在忽略列表中。如果是這樣,那麼我不會相應地記錄req/resp。如果主頭標記存在,我想忽略請求的記錄。 –

回答

0

一個快速的解決方案:

shouldIgnore = list.inject(false) { bool, val -> bool || line.contains(val) } 

不管這是不是最好的主意,取決於我們沒有信息;最好是做更多的事情 - XMLy而不是檢查字符串。

相關問題