是否存在正则表达式来检查以下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>
答案 0 :(得分:1)
使用XML解析器或XPath(而不是正则表达式)来检查或解析XML。
此XPath,
//*[not(text()) and not(*)]
将选择所有没有 没有文本或元素子元素 的元素。
此XPath,
//*[not(node())]
将选择所有 empty 元素(也不允许添加注释和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()
中,以返回指示符或存在的此类填充元素的计数。