2014-05-23 81 views
0

我得到一個xml節點;什麼是正則表達式來檢查空的XML節點?

<p:FirstAddressLine1></p:FirstAddressLine1> 

我想重寫那個節點,如果它有一個空字符串/ null。我使用了^$,但未能驗證特定的xml節點是否包含空字符串。

任何人都知道,這裏做錯了什麼?並使用正確的正則表達式?

+0

什麼語言,你以書面形式?向我們展示您用來匹配的代碼片段。 – merlin2011

+1

爲什麼你沒有測試它是否有一個字符(至少):'.' –

+0

可能的重複http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self- contains-tags – Pillsy

回答

1

我會使用類似如下的regex

(?:<p:FirstAddressLine1>(?!<\/p)) 

是使用Negative Lookahead,並會匹配其次是其他然後</p任何<p:FirstAddressLine1>。如果它在第一個<>之後直接看到</p>它將不匹配該字符串。

用法示例

use strict; 
use warnings; 

my @lines = <DATA>; 

foreach (@lines) { 

    if ($_ =~ m/(?:<p:FirstAddressLine1>(?!<\/p))/) { 
     print "The string is NOT empty\n"; 

    } 
    else { 
     print "The string is empty\n"; 
    } 

} 

__DATA__ 
<p:FirstAddressLine1></p:FirstAddressLine1> 
<p:FirstAddressLine1>TEST</p:FirstAddressLine1> 

結果

The string is empty 
The string is NOT empty 
+0

我不直接使用java。我配置一個基於java的Appserver – Ratha