如何检查XML中的空白元素?



是否有正则表达式来检查下面 XML 的空元素?所以我想检查是否填充了<ClientRequest>标签下的所有内容?

<Response xmlns="http://Test/Types"> 
<ClientRequest>
<Name>TEST</Name>
<Id><222/Id>
<Parameters>
<SID>123456</SID>
</RequestParams>
<StartDate>2017-10-13T23:00:01.000+01:00</StartDate>
<EndDate>2017-10-14T22:59:59.000+01:00</EndDate>
<URL></URL>
</ClientRequest>
<Install/>
<Types/>
<LR/>
<Package/>
<Services/>
<Issues/>
<Complaints/>
</Response>

使用 XML 解析器或 XPath(而不是正则表达式(来检查或解析 XML。

这个XPath,

//*[not(text()) and not(*)]

将选择没有文本或元素子级的所有元素

这个XPath,

//*[not(node())]

将选择所有元素(也不允许注释和 PI 子元素(。

请注意,您的 XML 格式不正确。 这是更正:

<Response xmlns="http://Test/Types"> 
<ClientRequest>
<Name>TEST</Name>
<Id>222</Id>
<Parameters>
<SID>123456</SID>
</Parameters>
<StartDate>2017-10-13T23:00:01.000+01:00</StartDate>
<EndDate>2017-10-14T22:59:59.000+01:00</EndDate>
<URL></URL>
</ClientRequest>
<Install/>
<Types/>
<LR/>
<Package/>
<Services/>
<Issues/>
<Complaints/>
</Response>

另请注意,您可以将上述 XPath 包装在boolean()count()中,以返回此类填充元素存在的指示器或计数。

最新更新