2014-05-23 51 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