使用XPath表达式获取XML中的非空元素

时间:2014-01-30 22:40:20

标签: xml xpath

我有以下内容,想要检索“FromEmail”不为空的数据

<FILE NAME="NewbusQuote">
   <REC NAME="level1">
        <FLD NAME="CoverPage"></FLD>
        <FLD NAME="FromEmail"></FLD>
       </REC>

    <REC NAME="leve2">
        <FLD NAME="CoverPage">Simple</FLD>
        <FLD NAME="FromEmail">email@gmail.com</FLD>
    </REC>


    <REC NAME="leve3">
        <FLD NAME="CoverPage"></FLD>
        <FLD NAME="FromEmail"></FLD>
    </REC>
</FILE>

提前谢谢

1 个答案:

答案 0 :(得分:2)

此XPath

/FILE/REC/FLD[@NAME = 'FromEmail']

将返回具有属性FromEmail的FLD元素,但此查询

/FILE/REC/FLD[@NAME = 'FromEmail']/text()

将仅返回第二个FromEmail元素的文本内容。

XPath一般不会检索空元素(就像它们一样 <FLD NAME="FromEmail" />)。

使用FromEmail atributte获取所有元素的所有数据,请使用此

/FILE/REC//FLD[@NAME = 'FromEmail']/text()

希望有所帮助