xpath表达式中没有文本

时间:2014-03-09 23:44:07

标签: xml xpath

我有书店xml。

<book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
</book>

<book_blank>
    <title lang="en"></title>
    <author></author>
    <year></year>
    <price></price>    
</book_blank>    

我正在尝试找到一个XPATH表达式,它将选择那些没有文本子元素的元素,即输出将是

<book category="CHILDREN">
</book>

<book_blank>
    <title lang="en"></title>
    <author></author>
    <year></year>
    <price></price>    
</book_blank>    

1 个答案:

答案 0 :(得分:2)

您可以使用表达式tag[not(text()[normalize-space()])]来测试没有文本的标记。要测试缺少的代码,请使用[not(tag)]

针对您的具体情况(我假设应该是这样)

 /book[not(author) or author[not(text()[normalize-space()])]]

以上内容会找到任何空白作者或遗失作者的book